jQuery多个数据角色选择器

时间:2013-01-11 11:28:39

标签: jquery jquery-selectors

  

可能重复:
  jQuery attribute selector for multiple values

假设我有以下内容:

<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() { //...

没有成功。

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分: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/

答案 2 :(得分:1)

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

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