You need to enable JavaScript to run this app. jQuery中用for循环批量设置标签值报html is not a function错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

jQuery中用for循环批量设置标签值报html is not a function错误如何解决

错误原因

jQuery选择器返回的是类数组的jQuery实例对象,使用[索引]方式取到的是原生DOM元素,并非jQuery封装对象,原生DOM元素没有.html()这个jQuery专属方法,因此触发类型错误。
你单独用$("#label1")获取的是完整的jQuery封装对象,所以可以正常调用.html()方法。

解决方案

以下三种方案均可解决问题,按需选择即可:

  • 方案1:将原生DOM元素包装为jQuery对象后调用方法
    修改循环内的代码,把取到的原生标签节点用$()包裹:
$('.button').click(function() {
  var inputArray = $("input[type=hidden]");
  var labelArray = $(".labels");
  
  for (var i = 0; i < inputArray.length; i++) {
    $(labelArray[i]).html(inputArray[i].value);
  }
});

(注:原代码末尾遗漏了click回调的闭合右括号,上述代码已补全)

  • 方案2:直接使用原生DOM属性赋值,不需要依赖jQuery方法
    直接调用原生DOM的innerHTML属性赋值即可:
labelArray[i].innerHTML = inputArray[i].value;
  • 方案3:使用jQuery内置的.each()方法遍历,更符合jQuery的编码习惯
    不需要手动写for循环,避免索引取值的问题:
$('.button').click(function() {
  const $inputArray = $("input[type=hidden]");
  $(".labels").each(function(index) {
    $(this).html($inputArray.eq(index).val());
  });
});

内容的提问来源于stack exchange,提问作者Menkot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 01:30:05