【问题标题】:Getting an array of input values with Jquery使用 Jquery 获取输入值数组
【发布时间】:2018-11-02 23:30:44
【问题描述】:

我正在选择所有具有“img-title”类的输入元素,以获取具有这些输入的当前值的数组:

var values = []
for (let element of $(".img-title")){ 
   values.push( element.val() ) }

但这不起作用,因为$(".img-title")的元素不是我预期的对输入的引用,而是html代码,所以val()会报错。有没有一种简单的方法来获取具有“img-title”类的输入的当前值的数组?

【问题讨论】:

    标签: javascript jquery input


    【解决方案1】:

    当您在 jQuery 集合上使用 for..of 时,您返回的项目是元素本身,而不是包含该元素的 jQuery 集合。在调用 .val() 之前先将元素转换为 jQuery 集合:

    const values = []
    for (const element of $(".img-title")){ 
      values.push( $(element).val() )
    }
    

    或者,仅使用 .value 访问本机元素上的属性:

    const values = []
    for (const element of $(".img-title")){ 
      values.push( element.value )
    }
    

    或者,考虑改用.map

    const values = $(".img-title")
      .map(function() {
        return $(this).val();
      })
      .get();
    

    (确保最后使用.get(),以获取数组,而不是jQuery集合)

    或者,如果你愿意,完全避免使用 jQuery,不需要像这样简单的东西包含一个大的库:

    const values = Array.prototype.map.call(
      document.querySelectorAll('.img-title'),
      element => element.value
    );
    

    【讨论】:

      猜你喜欢
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 2017-12-08
      • 2011-06-03
      相关资源
      最近更新 更多