当我从上一个下拉菜单中选择一个特定选项时,我正在尝试更改一组选择选项的文本。
这是我的HTML:
<select class="select" id="eventType" name="eventType" size="1">
<option value="0"></option>
<option value="wedding" name="wedding">Wedding</option>
<option value="private_party" name="private_party">Private Party</option>
<option value="corporate" name="corporate">Corporate Event</option>
</select>
<select class="select" id="band_type_choices" name="bandType">
<option value="0"></option>
<option value="acoustic" class="acoustic" name="acoustic">Acoustic</option>
<option value="jazz" class="jazz" name="jazz">Jazz/Easy Listening</option>
<option value="acoustic_jazz" class="acoustic_jazz" name="acoustic_jazz">Acoustic + Jazz/Easy Listening</option>
<option value="party" class="party" name="party">Party</option>
<option value="acoustic_party" class="acoustic_party" name="acoustic_party">Acoustic + Party</option>
<option value="jazz_party" class="jazz_party" name="jazz_party">Jazz/Easy Listening + Party</option>
<option value="acoustic_jazz_party" class="acoustic_jazz_party" name="acoustic_jazz_party">Acoustic + Jazz/Easy Listening + Party</option>
</select>
当有人从第一个下拉列表中选择“婚礼”时,我想更改所有#band_type_choices下拉列表的文本
这是我目前使用的jQuery,但它没有做任何事情:
$('#eventType').change(function() {
var eventTypeName = $("#eventType option:selected");
if (eventTypeName.is(".wedding") ) {
$('#band_type_choices option:contains("acoustic")').text('Wedding Ceremony');
}
});
答案 0 :(得分:8)
您的选择器搞砸了
$('#eventType').change(function() {
var eventTypeName = $("#eventType option:selected");
if (eventTypeName.is('[name="wedding"]') ) {
$('#band_type_choices option[name="acoustic"]').text('Wedding Ceremony');
}
});
婚礼选项没有类wedding
,名称属性设置为wedding
,:contains
也区分大小写,因此最好使用名称选择器设置值
演示:Fiddle
答案 1 :(得分:1)
首先,您可以使用select
(或本地val()
)获取value
的选定值。其次,没有一个选项具有类wedding
,因此is('.wedding')
将始终失败。最后,:contains
区分大小写,因此您需要Acoustic
。试试这个:
$('#eventType').change(function() {
if (this.value == "wedding") {
$('#band_type_choices option:contains("Acoustic")').text('Wedding Ceremony');
}
});