首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用正确的jQuery添加一些个性化的文本+ id属性?

如何用正确的jQuery添加一些个性化的文本+ id属性?
EN

Stack Overflow用户
提问于 2017-03-16 11:15:08
回答 4查看 35关注 0票数 2

我有很多这样的div:

代码语言:javascript
复制
<div class="textwidget"><div>
<div class="textwidget"><div>
<div class="textwidget"><div>

我想要这样的div输出:

代码语言:javascript
复制
<div class="textwidget" id="widget-1"><div>
<div class="textwidget" id="widget-2"><div>
<div class="textwidget" id="widget-3"><div>

我有一个jQuery,工作得很好,

代码语言:javascript
复制
$(document).find('.textwidget').each(function(i) {
  $(this).attr('id',[widget-] + i+1);
});

但是添加了小部件-1;小部件-11;小部件-21等等。我只想要小部件-1;小部件-2;小部件-3等等。

EN

回答 4

Stack Overflow用户

发布于 2017-03-16 11:16:55

使用带有回调的attr()方法,并根据可作为回调的第一个参数访问的索引生成id值。

代码语言:javascript
复制
$('.textwidget').attr('id', function(i) {
  return 'widget-' + (i + 1);
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="textwidget">
</div>
<div class="textwidget">
</div>
<div class="textwidget">
</div>

票数 2
EN

Stack Overflow用户

发布于 2017-03-16 11:18:49

它与操作的层次结构有关,使用width+i会立即将其值转换为string,所以如果添加1,它将不会将其添加为math操作,而是将其添加到字符串的末尾。

代码语言:javascript
复制
$('.parent').find('.textwidget').each(function(i) {
  $(this).attr('id', 'widget-'+(i+1));
});

console.log($('.parent').html());
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='parent'>
  <div class="textwidget">
  </div>
  <div class="textwidget">
  </div>
  <div class="textwidget">
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-03-16 11:20:20

当您执行i+1时,它被解释为级联,尝试如下:

代码语言:javascript
复制
$(document).find('.textwidget').each(function(i) {
  $(this).attr('id',[widget-] + i-(-1));
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42832520

复制
相关文章

相似问题

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