我想在具有相同类的div中添加一系列ID。
样品:
<div class="sample" id="id_1"></div>
<div class="sample" id="id_2"></div>
<div class="sample" id="id_3"></div>
<div class="sample" id="id_4"></div>
以下是我的项目enter link description here
的链接我正在使用此代码。
$(document).ready(function(){
$('.fpd-item').each(function(i){
$(this).attr('id', 'id_'+(i+1));
});
如果我使用.on(click)
触发,这显然有效
像这样:
$(document).ready(function(){
$('#primary').on( "click", '.gchoice_3_10_1', function(i){
$('.fpd-item').each(function(i){
$(this).attr('id', 'id_'+(i+1));
});
});
});
但问题是,我希望在页面加载后添加ID,而不是点击事件。
答案 0 :(得分:0)
最简单的方法是使用attr(prop,function)
。这不会解决为什么你的代码没有工作,除了你在代码中显示缺少一组大括号,但它看起来更干净
$(function(){
$('.fpd-item').attr('id',function(i){
return 'id_'+(i+1);
});
});
答案 1 :(得分:-1)
我有以下建议:
fpd-item
在加载时存在。所以这应该有效:
$(document).ready(function(){
$('.fpd-item').each(function(i){
$(this).attr('id', 'id_'+(i+1));
// Added just to ssho
$(this).text('id_'+(i+1));
});
});
我在这里试过这个并且有效:
答案 2 :(得分:-1)
终于找到了解决方案:
$(window).bind("load", function() {
$('.fpd-item').each(function(i){
$(this).attr('id', 'id_'+(i+1));
});
});
通过重播$(document).ready(function(){whith $(window).bind(“load”,function(){
$(window).bind("load", function() {
// content here
});