error on javascript dom appendChild

error on javascript dom appendChild

本文关键字:appendChild dom javascript on error      更新时间:2023-09-26
$.each($('#income_ranges').children(), function(key, value) {
  var field_row = value.getElementsByTagName("input");
  $.each(field_row, function(key, value) {
    if(value.value == "") {
        value.appendChild("<div> cant be blank </div>");
    }
  })
})

我想将下面的div附加到value,但我得到一个错误,说明该值。appendChild不是一个函数。

在我的代码值是一个HTMLInputElement,我想在元素下方输入div,但我得到了那个烦人的错误。

<input class="string required" id="lender_dsr_max_threshold_income_ranges_attributes_1437717712398_income_range" name="lender_dsr_max_threshold[income_ranges_attributes][1437717712398][income_range]" type="text">

感谢您的帮助

这里有两个问题,

  1. value是一个输入元素,所以它不能有子元素
  2. appendChild接受一个节点作为参数,而不是字符串

由于您想在#income_ranges的后代input之后添加div,请使用后代选择器(选择input元素)和()之后(插入div作为input的下一个兄弟)

$('#income_ranges input').filter(function () {
    return this.value == ''
}).after('<div> cant be blank </div>')

谢谢你的建议。我是这样解决的

$.each($('#income_ranges').children(), function(key, value) {
  var field_row = value.getElementsByTagName("input");
  $.each(field_row, function(key, value) {
    if(value.value == "") {
       $(this).after("<div> cant be blank </div>");
    }
  })
})