在事件处理程序中获取选择

Tow*_*own 5 jquery

我用这个jQuery代码回答了这个问题:

$('input[type="checkbox"][name$="chkSelect"]').click(function() {
  $('input[type="checkbox"][name$="chkSelect"]').not(this).prop("checked", false);
});
Run Code Online (Sandbox Code Playgroud)

...它让我思考:必须有一种方法可以避免在事件处理程序中复制选择器.

我尝试$(this).selector但只返回一个空字符串. 这是一个演示.

有没有办法在事件处理程序中获取选择器文本?

Fel*_*ing 5

$(this).selector不起作用,因为您创建一个新的 jQuery对象并传递DOM元素,而不是选择器.

如果您只想避免重复选择器,可以事先缓存元素(无论如何都要更好):

var $elements = $('input[type="checkbox"][name$="chkSelect"]');
$elements.click(function() {
    $elements.not(this).prop("checked", false);
});
Run Code Online (Sandbox Code Playgroud)

但我认为没有办法让选择器进入事件处理程序.您对所选元素的唯一引用是相应的DOM元素(直通this).但你不能从那里"反向工程"选择器.