是否可以用jquery替换div元素并更新dom?

是否可以用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

嘿,伙计们,快速提问,我想用两个新的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>
');
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中是新的。请参阅