首页 > 解决方案 > 如何连续使用replaceWith多次

问题描述

我有一个 PaysTrav 字段,如果它等于加拿大,我必须更改 UI 以显示选择框。我使用 .replaceWith 方法尝试执行此操作。

目前,如果我进入加拿大,选择框会显示并执行我想要的操作。我的问题是,如果 PaysTrav 字段不再等于 Canada,我想将其更改回旧字段。

所以我用两个不同的代码对其进行了测试,以尝试显示 a<h1> test </h1> 但是两次都失败了。

我想要一种使用或不使用replaceWith的方法来做到这一点。谢谢你。

我尝试的第一个代码:

$("input[id$='PaysTrav']").change(function () {
                            var paysTrav = $("input[id$='PaysTrav']").val()
                            if (paysTrav == "Canada" || paysTrav == "canada" || paysTrav == "CANADA") {
                                $("input[id$='ProvTrav']")
                                    .replaceWith('<select id="Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[0].IdentTravailleur.ProvTrav" name="Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[0].IdentTravailleur.ProvTrav" class="ProductDetailsQuantityTextBox">' +
                                        '<option value="AB">AB</option>' +
                                        '<option value="BC">BC</option>' +
                                        '<option value="MB">MB</option>' +
                                        '<option value="NB">NB</option>' +
                                        '<option value="NL">NL</option>' +
                                        '<option value="NS">NS</option>' +
                                        '<option value="NT">NT</option>' +
                                        '<option value="NU">NU</option>' +
                                        '<option value="ON">ON</option>' +
                                        '<option value="QC">QC</option>' +
                                        '<option value="PE">PE</option>' +
                                        '<option value="SK">SK</option>' +
                                        '<option value="YT">YT</option>' +
                                        '</select>');

                            }
                            else {
                                $("input[id$='ProvTrav']").replaceWith('<h1>test</h1>')
                            }
                            

                        });

我根据另一个stackoverflow帖子尝试的第二个代码:

$("input[id$='PaysTrav']").change(function () {
                            var paysTrav = $("input[id$='PaysTrav']").val()
                            $("input[id$='ProvTrav']").replaceWith(function () {
                                return $(this).text() === "Canada" || "canada" || "CANADA" ? '<select id="Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[0].IdentTravailleur.ProvTrav" name="Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[0].IdentTravailleur.ProvTrav" class="ProductDetailsQuantityTextBox">' : '<h1>test</h1>'
                            })
                            
                            
                            

                        });

标签: jquery

解决方案


推荐阅读