【问题标题】:How to get the class of an input inside a jQuery each loop?如何在每个循环的 jQuery 中获取输入的类?
【发布时间】:2011-03-09 23:38:38
【问题描述】:

我有一个功能,可以在单击链接时在列表项中附加输入。然后,我使用下面的代码使用每个循环遍历这些输入。如图所示,它工作正常,但是我想使用输入的类作为数组键而不是使用 field.name,但是当我尝试这样做时,该类显示为未定义。

这是我目前使用的代码:

var values = {};
$.each($('li :input').serializeArray(), function(i, field) {
    values[field.name] = field.value;
});

这是我使用 jQuery append 添加隐藏输入后在列表项中的代码:

<li><input type="hidden" name="group" class="group" value="2"/><input type="hidden" name="condition" class="condition" value="isany"/><input type="hidden" name="value" class="value" value="1,2"/></li>

我可以很好地获取名称属性,但类总是未定义。

有人可以帮忙吗?

【问题讨论】:

  • 你是如何获得类名的?

标签: jquery loops


【解决方案1】:

尝试:

var values = {};
$('li :input').each(function() {
    values[$(this).attr('name')] = $(this).val();
});

我测试时这个工作。

var values = {};
$('li input').each(function() {
    values[$(this).attr('class')] = $(this).val();
});
alert(JSON.stringify(values));

【讨论】:

  • values[$(this).attr('class')] = $(this).val();
  • 嗨,我试过这段代码,它适用于 name 属性,但是当我尝试使用我想要的类属性时,它仍然返回未定义的类
  • 嗨,这是我在列表项中附加的内容:&lt;li&gt;&lt;input type="hidden" name="group" class="group" value="2"/&gt;&lt;input type="hidden" name="condition" class="condition" value="isany"/&gt;&lt;input type="hidden" name="value" class="value" value="1,2"/&gt;&lt;/li&gt; 我可以获取名称属性,但不能获取类
【解决方案2】:

我不知道如何让它与 $.serializeArray 一起工作,但这是可行的。 (如果您没有控制台,请将 console.log 更改为 $("body").append)。

$.each($('input'),function(){console.log(this.className)})

请注意,您使用的是原生 javascript this 而不是 jquery 对象 $(this)

【讨论】:

    【解决方案3】:
    var values = {};
    $.each($('li :input').serializeArray(), function(i, field) {
        values[$(field).attr('class')] = field.value;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多