<select onchange="alert($(this).attr('data-type'))">
<option data-type="1" value="a">a</option>
<option data-type="2" value="b">b</option>
</select>
当我在 jsfiddle 上运行它时,我得到空值。有任何想法吗?
这是js小提琴:
谢谢!
<select onchange="alert($(this).attr('data-type'))">
<option data-type="1" value="a">a</option>
<option data-type="2" value="b">b</option>
</select>
当我在 jsfiddle 上运行它时,我得到空值。有任何想法吗?
这是js小提琴:
谢谢!
您必须获取元素的选定索引并从那里开始,试试这个:
<select onchange="alert(this.options[this.selectedIndex].getAttribute('data-type'));">
<option data-type="1" value="a">a</option>
<option data-type="2" value="b">b</option>
</select>
对我来说效果很好。
data-type
属性在选项元素上,而不是在选择上。我假设您想要当前选择的数据类型
<select onchange="alert($(this).find(':selected').attr('data-type'))">
<option data-type="1" value="a">a</option>
<option data-type="2" value="b">b</option>
</select>
this
指的是select
不是option
。试试这个:
<select>
<option data-type="1" value="a" onclick="alert($(this).attr('data-type'))">a</option>
<option data-type="2" value="b" onclick="alert($(this).attr('data-type'))">b</option>
</select>
或者,您可以使用:selected
选择器或this.selectedIndex
抓取option
. 像这样的东西:
<select onchange="alert($(':selected',this).attr('data-type'))" >
你需要这样做...
<select onchange="alert(this.options[this.selectedIndex].getAttribute('data-type'))">
<option data-type="1" value="a">a</option>
<option data-type="2" value="b">b</option>
</select>
更改事件上的“this”对象是列表,而不是选项