Jquery - 如何将输入中的属性名称中的文本添加到标签attr for和输入ID?

时间:2014-03-21 11:21:15

标签: javascript jquery html

我不知道如何将输入中的名称添加到标签attr中以及与ID相同的输入。他们在同一个div。你们知道怎么做吗?谢谢。

Jquery的:

$('input[type="text"]').each(function () {
  var name = $("input").attr("name");
})

HTML:

<div data-role="fieldcontain">
  <label>Name:</label>
  <input type="text" name="fname" value="" />
</div>

3 个答案:

答案 0 :(得分:3)

只需获取this输入字段的上一个元素,然后使用this.name更改其文字:

$('input[type="text"]').each(function() {
    $(this).prop('id', this.name)    // set 'id' of input field
           .prev('label')            // get previous sibling element
           .attr('for', this.name);  // set 'for' attribute
});

答案 1 :(得分:0)

使用$(this)

$('input[type="text"]').each(function () {
    var name = $(this).attr('name');
    $(this).prev('label').text(name);
})

答案 2 :(得分:0)

  

使用 .prop() 代替 .attr() ,因为 attr() 给你   元素的值,因为它是在页面加载的html中定义的。它是   始终建议使用 prop() 来获取元素的值   通过javascript / jquery修改,因为它为您提供原始值   元素的当前状态dom元素

$('input[type="text"]').each(function () {

     var name = $("input").prop("name");
     $(this).prev('label').text(name);
});