3

我有一个类似下面的列表:

<p class='info' data-info='1'>Info 1 <span class='status'></span></p>
<p class='info' data-info='2'>Info 2 <span class='status'></span></p>
<p class='info' data-info='3'>Info 3 <span class='status'></span></p>......etc

我需要做的是遍历所有.info元素,如果data-info数字包含在myArray更改跨度文本中。如何在 jQuery 中匹配数组内部的值?

4

6 回答 6

3
$('.info').each(function() {
  $this = $(this);
  if ($.inArray($this.data('info'), myArray) !== -1) {
    $this.children('.status').text('New text value');
  }
});

这是一个小提琴

于 2013-04-03T08:45:09.337 回答
2

你需要做这样的事情:

$(".info").each(function() {
    if($(this).data('info').val() == <INSERT NUMBER TO MATCH>)
    {
       //Do some code here
       //example
       $(this).find("span").text("Some text here")
    }
});
于 2013-04-03T08:41:18.647 回答
1

如下所示,您可以获取每个“p”的数据信息值,然后您可以检查该值是否存在于您的数组中

<p class='info' data-info='1'>Info 1 <span class='status'></span></p>
<p class='info' data-info='2'>Info 2 <span class='status'></span></p>
<p class='info' data-info='3'>Info 3 <span class='status'></span></p>......etc

var info = []
$('p').each(function(){
    info.push($(this).attr('data-info'));
});
alert(info)
于 2013-04-03T08:43:22.880 回答
1

与其循环遍历.info元素,不如循环遍历myArray.

for (var i = 0; i < myArray.length; i++) {
    $("p[data-info=" + myArray[i] + "] .status").html("Your text");
}
于 2013-04-03T08:45:15.257 回答
1
var valueToFind = ['3', '0', '1'];
$('.info').each(function(){
    var infoData = $(this).data('info');
    for(i=0;i<valueToFind.length;i++){
        if(valueToFind[i]==infoData){
            $(this).find('.status').html('found');
        }
    }
});

会变魔术。

这是一个现场小提琴示例http://jsfiddle.net/mayooresan/fw94c/

于 2013-04-03T08:45:48.683 回答
0

干得好

现场示例http://jsfiddle.net/mithun/5Ryu5/3/

var infoSpecialArray = [2, 3, 4, 5];
$("p.info").each(function() {
    if($.inArray(parseInt($(this).data('info'), 10), infoSpecialArray) != -1) {
      $(this).find('span.status').html('special')
    }
});
于 2013-04-03T08:49:36.807 回答