首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery设置新id

使用jQuery设置新id
EN

Stack Overflow用户
提问于 2009-04-22 21:24:14
回答 4查看 179.8K关注 0票数 34

"this“是文本字段,"new_id”是整数。

当我应用以下代码段时:

代码语言:javascript
复制
$(this).attr('id',   this.id + '_' + new_id);
$(this).attr('name', this.name + '_' + new_id);
$(this).attr('value', 'test');

id会改变,名称也会改变,但值不会改变。如果我将最后一行更改为this (因此使用字符串文字)

代码语言:javascript
复制
$('#mytextfield_3').attr('value', 'test');

它起作用了。

有什么想法吗?

--编辑--感谢Steerpike的快速插件测试-我相信它应该可以工作,但我找不到错误。

下面是更多的代码:

我使用以下命令创建克隆

代码语言:javascript
复制
clone = $(this).find('.clone_fields_container:first').clone();

"clone“现在包含一个带有嵌入式输入字段的div。

生成新id后:

代码语言:javascript
复制
  /** Iterate over input and select fields in container */

  clone.children('input,select,textarea').each(function() {
    $(this).attr('id',   this.id + '_' + new_id);
    $(this).attr('name', this.name + '_' + new_id);
    $(this).val('test');
    console.log(this);
  });

文本字段没有任何值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-22 21:38:32

我刚刚编写了一个快速插件,使用相同的代码片段运行测试,并且运行良好

代码语言:javascript
复制
$.fn.test = function() {
      return this.each(function(){
        var new_id = 5;
        $(this).attr('id',   this.id + '_' + new_id);
        $(this).attr('name', this.name + '_' + new_id);
        $(this).attr('value', 'test');
      });
    };

$(document).ready(function() {
    $('#field_id').test()
});

<body>
  <div id="container">

  <input type="text" name="field_name" id="field_id" value="meh" />
  </div>
</body>

因此,我只能假设您的代码中发生了其他事情。你能提供更多的细节吗?

票数 35
EN

Stack Overflow用户

发布于 2009-04-22 21:29:25

你试过了吗

代码语言:javascript
复制
$(this).val('test');

而不是

代码语言:javascript
复制
$(this).attr('value', 'test');

val()通常更容易,因为您需要更改的属性在不同的DOM元素上可能不同。

票数 2
EN

Stack Overflow用户

发布于 2009-04-22 21:38:11

当您像这样设置一个attr() command中的所有属性时会发生什么

代码语言:javascript
复制
$(this).attr({
               id : this.id + '_' + new_id,
               name: this.name + '_' + new_id,
               value: 'test' 
             });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/779300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档