如果你看到这个例子:http://jsfiddle.net/UTjbm/1/
我想要它,以便在更改第二个选择标记时,会出现一个警告,其中包含第一个选择选项文本。
到目前为止我所研究的内容,我希望这会起作用,但唉,事实并非如此。我正在使用jquery。
我的jsfiddle代码:
<select id="select_a">
<option value='1'>woot1</option>
<option value='2'>woot2</option>
<option value='3'>woot3</option>
<option value='4'>woot4</option>
</select>
<select id="select_b">
<option value='1'>notwoot1</option>
<option value='2'>notwoot2</option>
<option value='3'>notwoot3</option>
<option value='4'>notwoot4</option>
</select>
使用Javascript:
$("#select_b").change(function (){
alert($("#select_a").options[$("#select_a").selectedIndex].text);
})
答案 0 :(得分:7)
$(&#34; #select_a&#34;)是 jQuery对象
您尝试像DOM
元素一样访问它。尝试使用此语法
alert($("#select_a")[0].options[$("#select_a")[0].selectedIndex].text);
.options
是可用于DOM
对象的属性..
因此,当您尝试将其应用于jQuery对象时,会抛出语法错误。
要将jQuery对象转换为DOM object
,您可以执行
$("#select_a")[0]
或 $("#select_a").get(0)
然后在其上应用相应的DOM方法。
或者简单地使用纯jQuery就可以做到这一点
$("#select_a option:selected").text()
<强> Check Fiddle 强>
答案 1 :(得分:4)
你在一个错误的jQuery对象上调用.options
你可以这样做 -
$("#select_b").change(function (){
alert($("#select_a option:selected").text());
});
演示--->
http://jsfiddle.net/UTjbm/6/