如何使用jQuery检查是否存在具有特定名称attr的输入

时间:2013-10-29 06:00:52

标签: javascript jquery html

我需要一个函数来使用jQuery动态添加新的输入元素。

就像这样

function addInput(inputName) {
  $('<input>', {
    type: "hidden",
    name: "inputName"
  }).appendTo('#foo');
}

addInput('test');

并且有效,它向<input type="hidden" name="test">

添加了新的#foo

如果我想在DOM中不存在具有指定名称的输入时才使此功能添加输入,则会出现问题。

这是我更新的功能

function addInput(inputName) {
  if (! $(input).attr('name','inputName') {
    $('<input>', {
      type: "hidden",
      name: "inputName"
    }).appendTo('#foo')
  }
}

addInput('test');

但是,检查名为input的{​​{1}}元素时,它会将所有test元素的名称设置为input。 有没有方法只测试输入名称?

3 个答案:

答案 0 :(得分:8)

使用equal-selector来检查length

function addInput(inputName) {
  if (! $('input[name="'+inputName+'"]').length) {
    $('<input>', {
      type: "hidden",
      name: inputName
    }).appendTo('#foo')
  }
}

Demo

答案 1 :(得分:2)

function addInput(inputName) {
    if ($('input[name="'+inputName+'"]').length > 0)
     {
      alert("Exists");
     }
    }

答案 2 :(得分:1)

如果您使用jQuery,只需使用.is()函数:

if(input.is('[name="your_name"]')){
   //do some things!
}

see in codepen