jQuery:使用 .clone() 的方法比下面描述的更简单?

jQuery: easier way to use .clone() than described below?

如果在本页面的控制台中执行

var cloned = $(".question").clone(true);
$(".question").addClass("first");
var clonedStr = cloned[0].outerHTML || new XMLSerializer().serializeToString(cloned[0]);
$(".question").after(clonedStr);

您将克隆该问题(页面上将有两个问题,但第一个问题将带有 .first class)。这就是需要的。

有没有更简单的方法可以用 jQuery 做到这一点?我对上面代码中的第三个字符串感到困惑,并相信它可以更简单。有任何想法吗? 谢谢。

您可以在更改 class 后使用 insertAfter 插入克隆的元素。您不需要将 jQuery 对象中的元素转换为字符串,您可以在函数本身中使用该对象:

var $question = $('.question');
var $cloned = $question.clone(true).insertAfter($question);
$question.addClass('first');

如果您不使用 HTML 作为字符串,则不要获取它。只需使用 jQuery 对象:

var cloned = $(".question").clone(true);
$(".question").addClass("first").after(cloned);

此外,您可以一行完成:

$(".question").after($(".question").clone(true)).first().addClass("first");