如果下拉菜单中的选定值为tribute_type_value1,我需要更改标签,否则我不希望它更改值。
无论选择什么,下面的脚本都会更改值,但是如果选择了tribute_type_value1,我只希望更改文本。如果选中它,则选择tribute_type_value2,文本应恢复为原始。
$("#tribute_type").change(function () {
if ($("#tribute_type").value = "tribute_type_value1") {
$("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
<option></option>
<option value="tribute_type_value1">In Memory of</option>
<option value="tribute_type_value2">In Honor of</option>
</select>
<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>
&#13;
答案 0 :(得分:2)
首先,正如Andy所写,你需要修复if条件($("#tribute_type").value == "tribute_type_value1"
应该是=
- 注意额外的var defaultText = $("label[for=tribute_notify_recip_street1name]").text();
$("#tribute_type").change(function () {
if ($("#tribute_type").value == "tribute_type_value1") {
$("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
} else {
$("label[for=tribute_notify_recip_street1name]").text(defaultText);
}
});
)。
其次,对于文本还原,您需要先存储原始文本,然后替换它,以便稍后还原它:
Base
答案 1 :(得分:1)
您在if语句中缺少=
,目前您正在指定一个始终等于true的值。
你还必须在jquery选择器上使用val()
方法来获取元素的值。
$("#tribute_type").change(function () {
if ($("#tribute_type").val() == "tribute_type_value1") {
$("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
} else {
$("label[for=tribute_notify_recip_street1name]").text("Honoree Street 1:");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
<option></option>
<option value="tribute_type_value1">In Memory of</option>
<option value="tribute_type_value2">In Honor of</option>
</select>
<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>
答案 2 :(得分:1)
这是:
$("#tribute_type").change(function () {
if ($("#tribute_type").val() === "tribute_type_value1") {
$("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
} else {
$("label[for=tribute_notify_recip_street1name]").text("Honoree Street 1:");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
<option></option>
<option value="tribute_type_value1">In Memory of</option>
<option value="tribute_type_value2">In Honor of</option>
</select>
<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>
&#13;
第一个问题是在这一行:if ($("#tribute_type").value = "tribute_type_value1") {
。您应该比较===
,而不是分配=
。第二个问题是value
用法:在jQuery中,您只需使用val()
。