1

如果你会看到这个例子: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);
})
4

2 回答 2

7

$("#select_a")是一个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()

检查小提琴

于 2013-06-17T21:07:25.890 回答
4

您正在调用.options一个错误的 jQuery 对象

你可以这样做 -

$("#select_b").change(function (){
  alert($("#select_a option:selected").text());
});

演示---> http://jsfiddle.net/UTjbm/6/

于 2013-06-17T21:07:18.797 回答