2

可能重复:
多个值的 jQuery 属性选择器

假设我有以下内容:

<a href="#" class="result-name" data-role="1" data-obj-id="15">Obj 15</a>
<a href="#" class="result-name" data-role="3" data-obj-id="19">Obj 19</a>
<a href="#" class="result-name" data-role="2" data-obj-id="20">Obj 20</a>

现在,我正在做这样的事情:

$(document).on('click', 'a.result-name', function() {
  var objId = $(this).data('obj-id');
  // do some ajax call...
});

现在,如果我只想在角色 1 或 3 的链接中调用添加此行为,并且我想在选择器中执行此操作,我该怎么做?

我试过:

$(document).on('click', 'a.result-name[data-role=1|3]', function() { //...

没有成功。

4

3 回答 3

3

您需要将选择器分成两个匹配项:

.on('click', 'a.result-name[data-role=1], a.result-name[data-role=3]')

或者可能从回调函数中进行选择。

于 2013-01-11T11:33:11.840 回答
3

使用逗号将事件附加到多个元素

$(document).on('click', 'a.result-name[data-role=1], a.result-name[data-role=3]', function() { //...

http://jsfiddle.net/RSwMw/2/

你也可以使用NotEqual选择器!=

$(document).on('click', 'a.result-name[data-role!=2]', function() { //...

http://jsfiddle.net/RSwMw/1/

于 2013-01-11T11:33:15.963 回答
1

您可能正在寻找这个:http: //jsfiddle.net/HXq9Q/

$(document).on('click', 'a.result-name[data-role=3],[data-role=1]', function () {
 // action here
});
于 2013-01-11T11:42:32.447 回答