javascript – 使用jQuery追加多个项目

前端之家收集整理的这篇文章主要介绍了javascript – 使用jQuery追加多个项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从这个标记开始:
<div>
  <span>
    <label for="Item[0]">Item #1</label>
    <input type="text" value="" name="Item" id="Item[0]"/>
  </span>
</div>

在每个按钮上单击我想要添加另一个完全相同的部分,但增加索引.

<div>
  <span>
    <label for="Item[0]">Item #1</label>
    <input type="text" value="" name="Item" id="Item[0]"/>
  </span>
</div>
<div>
  <span>
    <label for="Item[1]">Item #2</label>
    <input type="text" value="" name="Item" id="Item[1]"/>
  </span>
</div>

我正在尝试使用这个javascript:

$(document).ready(function(){

    var count = <%= Items.Count - 1 %>;

    $('#AddItem').click(function(e) {
        e.preventDefault();
        count++;

        var tb = $('#Item[0]').clone().attr('id','Item[' + count + ']');

        var label = document.createElement('label')
        label.setAttribute('For','Item[' + count + ']')

        $('#ItemFields').append(label);
        $('#ItemFields').append(tb);
    });
});

所以有几个问题:

附加标签有效,但我的克隆文本框没有.

标签没有文字.我似乎找不到那个属性.谁能告诉我它是什么?

我无法弄清楚如何在div和span中将标签和文本框包装在一起.如果我试试

$('#ItemFields').append('<div><span>' + label + tb + '</span></div>');

输出[object HTMLLabelElement]而不是实际标签.如果我尝试将它们分成多个append语句,它会自行终止div和span.我是jQuery / Javascript的新手,所以我不太确定我做错了什么.

解决方法

克隆整个块的示例(但是添加了一个item类),因为我认为它对未来更加健壮(例如,如果您更改项目的html)并处理标签的文本:
<html>
<head>
  <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Demo</title>
  <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $('#AddItem').click(function(e) {
      e.preventDefault();

      var count = $('.item').length;
      var id = 'Item[' + count + ']';
      var item = $('.item:first').clone();
      item.find('input:first').attr('id',id);
      item.find('label:first').attr('for',id)
          .html('Item #' + (1+count));
      item.appendTo('#ItemFields');
    });
  });
  </script>
</head>
<body>
  <input type="button" id="AddItem" value="Add" />
  <div id="ItemFields">
    <div class="item">
      <span>
        <label for="Item[0]">Item #1</label>
        <input type="text" value="" name="Item" id="Item[0]"/>
      </span>
    </div>
  </div>
</body>
</html>
原文链接:https://www.f2er.com/jquery/153022.html

猜你在找的jQuery相关文章