如何获取触发jQuery .change()
函数的元素的id
? 该功能本身正常工作,但我需要一个具有id="next"
的选择器的特定操作。
$("select").change(function() {
[...snip....]
alert($(this).attr('id')); // <---- not working
}
任何想法为什么上述提示无法正常显示?
如何获取触发jQuery .change()
函数的元素的id
? 该功能本身正常工作,但我需要一个具有id="next"
的选择器的特定操作。
$("select").change(function() {
[...snip....]
alert($(this).attr('id')); // <---- not working
}
任何想法为什么上述提示无法正常显示?
this
是事件被挂钩的DOM元素。 this.id
是它的ID。无需将其包装在jQuery实例中以获取它,id
属性在所有浏览器上都可靠地反映该属性。
$("select").change(function() {
alert("Changed: " + this.id);
}
你不这样做,你的代码示例中,但如果你在看几个表单元素的容器,这会给你的容器的ID。如果你想要触发事件的元素的ID,你可以得到从event
object'starget
属性:
$("#container").change(function(event) {
alert("Field " + event.target.id + " changed");
});
(jQuery的保证change
事件气泡,即使在IE的地方没有按本身。)
是什么让你觉得'.id'是可靠的? – ajax333221 2012-05-14 04:49:33
@ ajax333221:你有什么理由不这样想?我已经在IE5.5以上版本,Chrome和Firefox以及它们开始使用它,旧的Netscape Navigator,Opera超过十年,Safari,Konqueror,Midori等等。它是[指定](http://www.w3 .org/TR/DOM-Level-2-HTML/html.html#ID-63534901),它在[非常早期版本](http://www.w3.org/TR/1999/CR- DOM-Level-2-19991210/html.html#ID-63534901)。我会说你不会在一般的(或者甚至是有限的)使用中找不到一个浏览器,它不能反映元素上的“id” - 但我对你的评论的起源感兴趣。 :-) – 2012-05-14 05:36:01
@T好吧,事实是,我一直在寻找关于这个几小时的参考资料,你的文章是我发现的最好的,但我仍然想要一些参考确认:-J – ajax333221 2012-05-14 14:38:31
你的意思是说,对于ID为“next”的select元素,你需要执行一些特定的脚本?
$("#next").change(function(){
//enter code here
});
它看起来像它的工作原理,我... http://jsfiddle.net/interdream/nGtjR/1/ – 2011-06-14 15:43:43
你试图让你改变处理器连接到选择元素的ID? – kinakuta 2011-06-14 15:44:03