使用JQUERY更改输入名称

前端之家收集整理的这篇文章主要介绍了使用JQUERY更改输入名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试根据< li>的列表索引更改所有输入名称但似乎根本没有变化.
  1. $('.test').click(function() {
  2. for(var i=0;i<$("li.songs").length;i++)
  3. {
  4. var ob = $("li.songs").eq(i).clone();
  5. ob.find('input').each(function()
  6. {
  7. this.name = this.name+i;
  8. alert(this.name); //just checking if does it change
  9. });
  10. }
  11. });

现在,警报显示我想要的正确名称,但是当我检查元素并尝试提交表单并显示所有POST值时,名称没有变化.

更改前的预期输出示例:

  1. <li class="songs"><input type="text" name="song" /></li>
  2. <li class="songs"><input type="text" name="song" /></li>
  3. <li class="songs"><input type="text" name="song" /></li>

更改后:

  1. <li class="songs"><input type="text" name="song1" /></li>
  2. <li class="songs"><input type="text" name="song2" /></li>
  3. <li class="songs"><input type="text" name="song3" /></li>

注意:我不希望输入名为歌曲的ARRAY.

解决方法

您正在克隆该对象,因此更改是对副本而不是原始DOM节点进行的.

不要使用clone(),你会没事的.或者这样做:

  1. $("li.songs input").each(function(i) {
  2. $(this).attr('name',$(this).attr('name') + i);
  3. });

猜你在找的jQuery相关文章