在while循环中从相同的id获取值

时间:2017-01-05 11:58:07

标签: javascript php jquery

我有一个while循环,其中我对每个事件都有不同的日期。

 <?php while( have_rows('_event_date_time_slots') ): the_row(); ?>

 <div>
     <h3 class="date-<?php echo $post->ID?>" 
         name="tttdate<?php echo $post->ID?>"           
         value="<?php the_sub_field('_event_date'); ?>">
 <?php the_sub_field('_event_date'); ?></h3>

我已经将类分配给h3元素,以便使用此代码在jquery中获取日期。

 var t_date = jQuery('.date-<?php echo $post->ID?>').html();

但它只返回第一项。然后我将名称分配给h3元素并尝试通过此代码获取日期。

var tttdates = document.getElementsByName("tttdate<?php echo $post->ID?>");
var vals=[];
for (var i=0, n=tttdates.length; i<n; i++) {
     vals.push(tttdates[i].value);
}
alert(vals.join(","));

现在我只得到,或空警报框。我在哪里做错了?

2 个答案:

答案 0 :(得分:1)

您需要使用textContent属性,因为tttdates[i]引用没有value属性的<h3>

vals.push(tttdates[i].textContent);

当您使用jQuery时,您可以使用.map()

var vals = $(".tttdate<?php echo $post->ID?>").map(function(){
    return this.textContent;
}).get();

答案 1 :(得分:0)

您可以使用each迭代同一个班级。

试试这个

$('.date-<?php echo $post->ID?>').each(function(i, obj) {
    vals.push($(obj).text());
});
alert(vals.join(","));