是否可以用jquery替换div元素并更新dom?
嘿,伙计们,快速提问,我想用两个新的div来更新一个div的内容,以取代以前的div。每个新的div都有一个唯一的id来代替旧的div。然后,我希望任何进一步的更新都使用新div的id作为它们的值,而不是原始值。这在Jquery中可能吗?提前感谢您的帮助是否可以用jquery替换div元素并更新dom?,jquery,Jquery,嘿,伙计们,快速提问,我想用两个新的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_dis
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>
');
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('
显示“+”的新显示“+”的总显示“+”
'
+新建\u显示\u总计+'消息。。。
');
(编者注:原始代码中没有换行符)为什么不使用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>''
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('Displaying'+new_display_of_total+'of');
var new_display_of_total_元素=$('.totalmessages')。append(''+new_display_total+'消息…'')
为什么不使用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>''
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('Displaying'+new_display_of_total+'of');
var new_display_of_total_元素=$('.totalmessages')。append(''+new_display_total+'消息…'')
从你所发布的内容来看,你几乎已经做到了。什么对你不起作用
不过,我确实有几句友好的建议
首先,根据一个元素的id,它不能仅仅是一个数字(Firefox似乎对数字id很在行)
命名规则:
- 必须以字母a-Z或a-Z开头
- 可后跟:字母(A-Za-z)、数字(0-9)、连字符
(“-”,下划线(“”),冒号
(“:”)和期间(“.”) - 值区分大小写
。然后您可以用获取id的相同方式访问它,只需将“data num”替换为“id”。$('.display_total').attr('data-num')
其次,我会将其放在一个可以为某个操作调用的函数中,您需要然后我希望任何进一步的更新都使用新div的id作为它们的值,而不是原始值。
将得到满足
您的函数将类似于:
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>');
}
从你所发布的内容来看,你几乎已经做到了。什么对你不起作用 不过,我确实有几句友好的建议 首先,根据一个元素的id,它不能仅仅是一个数字(Firefox似乎对数字id很在行) 命名规则:
- 必须以字母a-Z或a-Z开头
- 可后跟:字母(A-Za-z)、数字(0-9)、连字符
(“-”,下划线(“”),冒号
(“:”)和期间(“.”) - 值区分大小写
。然后您可以用获取id的相同方式访问它,只需将“data num”替换为“id”。$('.display_total').attr('data-num')
其次,我会将其放在一个可以为某个操作调用的函数中,您需要然后我希望任何进一步的更新都使用新div的id作为它们的值,而不是原始值。
将得到满足
您的函数将类似于:
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>');
}
现在只剩下缓存那些DOM元素(将其从DOM.remove(),.detach()中取出)我们很清楚。是的,我尝试了你建议的方法,但由于某种原因,它不起作用,它在第一次更新后就停止了。无论如何,感谢Tomas,感谢你的时间+1。现在唯一剩下的就是缓存那些DOM元素(将其从DOM.remove(),.detach()中取出)我们很清楚。是的,我尝试了你建议的方式,但由于某种原因,它不起作用,它在第一次更新后就停止了。无论如何,谢谢你,托马斯,感谢你的时间+1。这是一个令人惊异的后咀嚼。如果我能捐点,我会哈哈。我不知道你可以使用数据属性哈哈。非常感谢这是真的你的方法很有效,我学到了一些新东西。数据属性在HTML 5中是新的。你看,这是一个令人惊讶的帖子。如果我能捐赠积分,我会大笑。我不知道你可以使用数据属性大笑。非常感谢,这真的很有用,而且我学到了很多。你的方法很有效,我学习了一些新东西。数据属性在HTML5中是新的。请参阅