JQuery - 根据输入值查找正确的div

时间:2012-03-29 14:58:03

标签: jquery arrays date

我遇到了问题

我基本上试图创建一个函数,我将不同的文本(从数组)分配给同一类的不同div,这些div由id区分,这里是我的意思的一个例子

HTML标记

<div class='actContainer'>
    <div class='msgContainer'>
       <input class='activityId' type='hidden' value='1'>
       <div class='date'> </div> 
    </div>

    <div class='msgContainer'>
       <input class='activityId' type='hidden' value='2'>
       <div class='date'> </div> 
    </div>

    <div class='msgContainer'>
       <input class='activityId' type='hidden' value='3'>
       <div class='date'> </div> 
    </div>
</div>

JQuery代码

var textArr = ['time1', 'time2', 'time3'];
var id = [1, 2, 3];

$.each(textArr, function(key, value){      
   $('.actContainer').find('input#activityId').val()==id[key]
     .parent().find('div.date')
     .append("Posted message at"+textArr[key]); 
}

从代码中可以看到我试图在div.date标记之间放置文本。

这目前无效,所以我必须做错事,如果有人可以提供帮助,那将非常感激

3 个答案:

答案 0 :(得分:3)

你需要这个:

 $('.actContainer').find('input.activityId[value="'+id[key]+'"]')
     .siblings('.date')
     .text("Posted message at"+textArr[key]); 

这意味着您正在使用activityId类搜索输入,该类的值也等于id [key]。 你想在它附近找到一个有课程日期的div,你想将它的文本内容改为“发布的消息......”

答案 1 :(得分:1)

“activityId”似乎是一个类,而不是一个ID。 另外我建议直接在日期div上放置一个ID,或者将ID放在父元素上(带有类msgContainer的ID)。这将使日期div更容易解决。

答案 2 :(得分:1)

非常简单的代码:

$.each(textArr, function(key, value) {
  key = key +1
  $('input[value="'+key+'"]').siblings('.date').text("Posted message at "+value);
});

我编辑了你的小提琴 - http://jsfiddle.net/9FAhJ/1/