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");
如果在本页面的控制台中执行
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");