在DIV中将数组与文本匹配

时间:2012-02-16 19:25:41

标签: jquery arrays

我有一个名字数组,我需要看看它们是否与DIV中的名字匹配:

var topicName = []; 
$.each(top3, function(i, item) {
    if (item.featured === false) {
        topicName.push(item.username);
    }    
});

$("DIV.grid_6 DIV.name").each(function(i, item){
       if (topicName === item){
        alert("do somethign");
        }
     }

我有一堆DIV.name类,如果名称与topicName数组匹配,我需要做一些事情;

4 个答案:

答案 0 :(得分:1)

$("DIV.grid_6 DIV.name").each(function(i, item){
    if ( $.inArray( item, topicName ) !== -1 ){
        alert("do somethign");
    }
 }

答案 1 :(得分:0)

而不是

if (topicName === item)

如果要匹配的文字是div

的内容,请执行此操作
if ($.inArray($(item).text(), topicName) != -1)

或者,如果它在属性中(例如<div name="foo">):

if ($.inArray($(item).attr('name'), topicName) != -1)

答案 2 :(得分:0)

HTML:

<div class="name">jen</div>
<div class="name">bob</div>
<div class="name">sally</div> 

jQuery的:

var topicName = ["jen","bob","michelle"];


$("div.name").each(function(){

    var nameFound = $.inArray($(this).text(), topicName);
    if (nameFound === -1){
        alert($(this).text() + " not found in array");
    } else {
        alert($(this).text() + " found in array");
    }

 });

http://jsfiddle.net/xqGKr/

答案 3 :(得分:0)

你可以使用某种棘手的方式;

$(document).ready(function(){
   var a = ['foo', 'bar', 'c'];
   //
   // $('.' + a.join(', .')) => $('.foo, .bar, .c')
   //
   $('.' + a.join(', .')).mouseover(function() {
       console.log($(this).attr('class'));
   });
});

您可以简单地选择它们并按照您的意愿行事。如果名称不存在,则不会绑定。这意味着没有任何问题。