嘿伙计们快速提问,我想用两个新div来更新div的内容来取代之前的div。每个新div都有一个唯一的id代替旧的div。然后,我希望任何进一步的更新使用新div的ID作为其值而不是原始值。这在Jquery有可能吗?提前感谢您的任何帮助。
var display_total = $(".display_total").attr("id");
var display_of_total = $(".display_of_total").attr("id");
var new_display_of_total = parseInt(display_of_total) + 1;
var new_display_total = parseInt(display_total) + 1;
$('.totalmessages').html('
<div class="display_of_total" id="' + new_display_of_total + '">
Displaying ' + new_display_of_total + ' of
</div>
<div class="display_total" id="' + new_display_total + '">'
+ new_display_total + ' messages...
</div>
');
(编者注:原始代码中没有换行符)
答案 0 :(得分:3)
看起来你和你发布的内容差不多。什么不适合你?
我确实有几句友好的建议。
首先,根据w3schools,元素的id不仅仅是一个数字。 (Firefox似乎对数字ID很好。)
命名规则:
- 必须以字母A-Z或a-z
开头- 可以跟着:字母(A-Za-z),数字(0-9),连字符
(“ - ”),下划线(“_”),冒号
(“:”)和句点(“。”)- 值区分大小写
如果需要是数字,则可以使用数据属性<div data-num="25"></div>
。然后你可以像获取id一样访问它,只需将“data-num”换成“id”即可。 $('.display_total').attr('data-num')
。
其次,我会把它放在一个可以调用某个动作的函数中,并且你需要I then want any further update to use the ids of the new divs as their values instead of the original.
。
你的功能看起来像是:
function updateMessages(){
var display_total=$(".display_total").attr("data-num");
var display_of_total=$(".display_of_total").attr("data-num");
var new_display_of_total=parseInt(display_of_total)+1;
var new_display_total=parseInt(display_total)+1;
$('.totalmessages').html('<div class="display_of_total" data-num="'+new_display_of_total+'">Displaying '+new_display_of_total+' of </div><div class="display_total" data-num="'+new_display_total+'">'+new_display_total+' messages...</div>');
}
您可以更新它,例如,在点击事件上更新它:
$('#click_me').click(function(){
updateMessages();
});
答案 1 :(得分:1)
为什么不使用DOM操作方法?像这样:
var new_display_total= 1 + parseInt($(".display_total").attr("id"));
var new_display_of_total= 1 + parseInt($(".display_of_total").attr("id"));
$('.totalmessages').empty();
var new_total_element = $('.totalmessages').append('<div class="display_of_total" id="'+new_display_of_total+'">Displaying '+new_display_of_total+' of </div>"');
var new_display_of_total_element = $('.totalmessages').append('<div class="display_total" id="'+new_display_total+'">'+new_display_total+' messages...</div>''