如何使用jQuery为HTML中的每个元素设置唯一ID

时间:2018-06-26 15:45:52

标签: javascript jquery

我的html中有很多类,但我希望每个类(如果需要更改,请输入id)是唯一的。我的代码中有很多class="answer-to-q",并且当我单击特定的代码时,<div>不应向下滑动。

 <div style="text-align: right;margin: 20px 20px 0 0">
      <p class="answer-to-q">please log in
      <span uk-icon="icon:  plus-circle"></span>
       </p>
  </div>

jquery:

 $(".answer-to-q").click(function () {
       $(".post-a-answer-div").slideDown("slow");
  });

1 个答案:

答案 0 :(得分:0)

理想情况下,我认为您应该在生成HTML时设置ID,但是如果这不可能,那么这样的事情是否可行?我使用数据属性代替ID,因为这似乎更合适,但如果您确实需要使用'em,则可以对其进行修改以使用ID。

// Add data attributes
var count = 1;
$('.answer-to-q').each(function(){
  $(this).attr('data-q', count);
  $('body').find('.post-a-answer-div:not([data-a])').first().attr('data-a', count);
  count++;
});

// Toggle on click
$('.answer-to-q').click(function(){
  var target = $(this).attr('data-q');
  $('[data-a="'+target+'"]').toggle();
});

示例: https://codepen.io/anon/pen/xzaBgM