【发布时间】:2011-06-24 15:11:58
【问题描述】:
我用这个 jQuery 代码回答了this question:
$('input[type="checkbox"][name$="chkSelect"]').click(function() {
$('input[type="checkbox"][name$="chkSelect"]').not(this).prop("checked", false);
});
...这让我想到:必须有一种方法可以避免在事件处理程序中重复选择器。
我尝试了$(this).selector,但这只是返回一个空字符串。 Here's a demo.
有没有办法在事件处理程序中获取选择器文本?
【问题讨论】:
-
you're
$('____').selector只是返回 __,您可以尝试使用$('abcdefgi").selector.. 之类的任何东西。 -
我在您的示例中得到了正确的选择器 (div)。 (我使用的是 FF 5)
-
@maenu:我认为你没有点击元素;)
-
@mazlix:我不明白你的意思——在第一个例子中,
div被返回。在第二个(单击)示例中,返回空字符串。你看到了什么不同的东西吗? -
@mazlix:没错,因为在那种情况下
allyourbasearebelongtous是选择器(尽管您不会看到任何返回的元素!)。alert在参数上隐式调用toString,所以alert(this)与alert(this.toString())相同,显示[object HTMLDivElement]。alert($(this).selector)显示从this创建的 jQuery 对象的 selector 属性,但在我的演示上下文中它是空的,因为底层元素this是一个 DOM 元素,它不知道它是如何被选择的。希望这是有道理的! :)
标签: jquery