在Jquery中分配类唯一ID的所有元素

时间:2016-07-22 20:15:28

标签: javascript jquery html css

所以我有一组标签都属于" btn btn-warning" bootstrap类:

<div class = "btn-group" data-toggle = "buttons">
  <label class="btn btn-warning active">
    <input type="radio" checked>QA 71</input>
  </label>
  <label class="btn btn-warning">
    <input type="radio">QA 72</input>
  </label>
  <label class="btn btn-warning">
    <input type="radio">QA 73</input>
  </label>
  <label class="btn btn-warning">
    <input type="radio">QA 74</input>
  </label>
  <label class="btn btn-warning">
    <input type="radio">ST 71</input>
  </label>
  <label class="btn btn-warning">
    <input type="radio">PR/Beta</input>
  </label>
</div>

我想为所有人分配ID,其中一个标记为QA 71为environment1,下一个标记为environment2,等等。这是我的jquery函数:

var count = 1;
var btnid = "";
$(document).ready(function(){
  $("label .btn-warning").each(
    function(){                     
      btnid = "environment"+count;
      $(this).attr("id", btnid);
      count++;
    });
});

但是,这不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:5)

它不起作用的原因是因为选择器错误,带有类的标签表示为label.classname

jQuery&#39; s each()在第一个参数中也已有计数,使用

$(document).ready(function(){
    $("label.btn-warning").each(function(index, elem){                     
        elem.id = "environment" + (index + 1); // zero based
    });
});

您甚至可以将attr()与回调

一起使用
$(document).ready(function(){
    $("label.btn-warning").attr('id', function(index){                     
        return "environment" + (index + 1); // zero based
    });
});

答案 1 :(得分:0)

SetFocuslabel之间有一个空格,这意味着它会尝试在标签内寻找一个类,但事实并非如此。

btn-warning

this question