如何使用循环访问值隐藏元素

时间:2015-01-31 08:07:25

标签: javascript jquery

我需要什么

  • 我需要根据特定的元素id获取隐藏的元素数据。

a.html

 <input type="hidden" id="evt_date" value="feb 10">
 <input type="hidden" id="evt_date" value="Mar 21">
 <input type="hidden" id="evt_date" value="april 05">

JS

<script>
        $.each($('input'), function(i, val) {
           if ($(this).attr("type") == "hidden") {
             var event_date = document.getElementById('evt_date');
             console.log(event_date);
           }
        });
</script>

问题

  • 在执行console.log时获取

      <input type="hidden" id="evt_date" value="feb 10">
    
  • 我想用js。
  • 获取循环中的所有隐藏元素

更新了js代码

$.each($('input.event_date'),function(i,val)
{
if($(this).attr("type")=="hidden")
{
      console.log(val);
      var evt_date=$('.event_date').val();
      console.log(evt_date);
     $('.date_event').html(evt_date);
 }
 });

5 个答案:

答案 0 :(得分:1)

对多个元素使用相同的id并不是一个好习惯。您可以使用class属性。首先,您应该将重复的id属性更改为&#39; class&#39;属性。

HTML:已更新

<input type="hidden" class="event_date" value="feb 10">
<input type="hidden" class="event_date" value="Mar 21">
<input type="hidden" class="event_date" value="april 05">

<div class="date_event"></div>
<div class="date_event"></div>
<div class="date_event"></div>

接下来关于你的答案,循环遍历每个元素并记录值或者无论如何都要使用它。试试这个,

jQuery:

You question seemed little confusing to me when in one part you asked for the data of the element and in another part you asked for the element itself.

$.each($("input[type='hidden'][class='evt_date']"), function(){
    console.log($(this).val()); // value of the element
    console.log($(this)); // the element itself
});

jsFiddle

修改代码:

jQuery:

var counter = 0;

$.each($('input.event_date'),function(i,val)
{
    if($(this).attr("type")=="hidden")
    {
          console.log(val);
          var evt_date=$(this).val();
          console.log(evt_date);
        $('.date_event:eq('+ counter +')').append(evt_date);
        counter++;
     }
 });

jsFiddle

答案 1 :(得分:0)

您对所有输入使用相同的ID。 id应该是唯一的。请改用班级

$.each($('input.evt_date'),function(i, field) {
    if($(this).attr("type")=="hidden") {
        console.log(field);
    }
});

答案 2 :(得分:0)

$.each($('input'),function(i,val){
    if($(this).attr("type")=="hidden"){
        console.log($(this).val());
     }
 });

<强> Demo

答案 3 :(得分:0)

不知道你为什么使用相同的 Id ,但这将是一个很短的路:

$("input [id='evt_date'][type='hidden']").each(function(){
   console.log($( this ))
});

答案 4 :(得分:0)

试试这个

$('input[type="hidden"]').each(function(index,item){
 console.log($(item));
});

Working demo