<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上运行时,我得到空。有任何想法吗?无法从事件处理程序“此”对象获取属性
这里的爵士小提琴:
谢谢!
<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上运行时,我得到空。有任何想法吗?无法从事件处理程序“此”对象获取属性
这里的爵士小提琴:
谢谢!
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'))" >
data-type
属性位于选项元素上而不是select。我假设你想要的当前选择的一个
<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>
你必须抓住元素的选择指标,并从那里的数据类型,试试这个:
<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>
厂对我来说很好。
你需要做到这一点...
<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>
上更改事件的“此”对象列表,而不是选择
这里是一个jQuery的解决方案:http://jsfiddle.net/49wyG/5 / – slamborne 2013-03-22 02:36:53