jquery - 如何连续使用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>'
})
});