Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将两个元素之间的所有元素和子元素复制到临时元素中?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将两个元素之间的所有元素和子元素复制到临时元素中?

Javascript 如何将两个元素之间的所有元素和子元素复制到临时元素中?,javascript,jquery,Javascript,Jquery,非常直截了当,只是不知道如何使用开始和结束节点执行循环部分=\ 正如@pimvdb在问题评论中指出的那样,“DOM不是一个扁平列表,而是一个层次模型。” 所以为了理解你的问题,我必须做一些假设 我将假设您的start\u元素和end\u元素是同级元素,并且您正在尝试查找同时也是同级元素但出现在两者之间的所有dom元素。换句话说,我假设您正在讨论DOM的一个特定平面部分。如果我的假设是错误的,请忽略这个答案。如果我的假设是正确的,那么您可以像这样迭代所有兄弟姐妹,并且只匹配介于两者之间的兄弟姐妹:

非常直截了当,只是不知道如何使用开始和结束节点执行循环部分=\

正如@pimvdb在问题评论中指出的那样,“DOM不是一个扁平列表,而是一个层次模型。”

所以为了理解你的问题,我必须做一些假设

我将假设您的
start\u元素
end\u元素
是同级元素,并且您正在尝试查找同时也是同级元素但出现在两者之间的所有dom元素。换句话说,我假设您正在讨论DOM的一个特定平面部分。如果我的假设是错误的,请忽略这个答案。如果我的假设是正确的,那么您可以像这样迭代所有兄弟姐妹,并且只匹配介于两者之间的兄弟姐妹:

context = document.createElement("span");
start_element = my_start_element;
end_element = my_end_element;

// some how iterate through here (assuming start and end are different elements)
[start_element .. end_element].each(function(current_element){
   context.append(current_element);
});
注意,这假设
start\u元素
end\u元素
是普通DOM对象,而不是jquery扩展对象。如果它们是jquery扩展的,那么检查应该类似于
If(this==start\u element.get(0))


还请注意,有一个方法,但我们使用了
$(start\u element).parent().children()
,因为我们希望原始
start\u element
成为组的一部分。
sublings()
方法将省略它。

正如@pimvdb在问题注释中指出的那样,“DOM不是一个扁平列表,而是一个层次模型。”

所以为了理解你的问题,我必须做一些假设

我将假设您的
start\u元素
end\u元素
是同级元素,并且您正在尝试查找同时也是同级元素但出现在两者之间的所有dom元素。换句话说,我假设您正在讨论DOM的一个特定平面部分。如果我的假设是错误的,请忽略这个答案。如果我的假设是正确的,那么您可以像这样迭代所有兄弟姐妹,并且只匹配介于两者之间的兄弟姐妹:

context = document.createElement("span");
start_element = my_start_element;
end_element = my_end_element;

// some how iterate through here (assuming start and end are different elements)
[start_element .. end_element].each(function(current_element){
   context.append(current_element);
});
注意,这假设
start\u元素
end\u元素
是普通DOM对象,而不是jquery扩展对象。如果它们是jquery扩展的,那么检查应该类似于
If(this==start\u element.get(0))


还请注意,有一个方法,但我们使用了
$(start\u element).parent().children()
,因为我们希望原始
start\u element
成为组的一部分。
sublings()
方法将省略它。

您也可以使用普通的
DOM
DocumentFragment
来完成这一点

假设开始节点和结束节点是兄弟节点,并且您有以下html:

var siblings = $(start_element).parent().children();
var currently_between = false;
var matches = [];
siblings.each(function() {
    if (this == start_element) currently_between = true;
    else if (this == end_element) currently_between = false; 
    else if (currently_between) matches.push(this);
});
// "matches" contains the in-between elements

您还可以使用普通的
DOM
DocumentFragment
来实现这一点

假设开始节点和结束节点是兄弟节点,并且您有以下html:

var siblings = $(start_element).parent().children();
var currently_between = false;
var matches = [];
siblings.each(function() {
    if (this == start_element) currently_between = true;
    else if (this == end_element) currently_between = false; 
    else if (currently_between) matches.push(this);
});
// "matches" contains the in-between elements

什么是“中间”?DOM不是一个扁平列表,而是一个层次模型。您想知道如何复制元素吗?或者如何迭代元素?或者如何附加/删除元素?我们可以假设开始元素和结束元素之间的关系吗?他们总是兄弟姐妹吗?什么是“中间”?DOM不是一个扁平列表,而是一个层次模型。您想知道如何复制元素吗?或者如何迭代元素?或者如何附加/删除元素?我们可以假设开始元素和结束元素之间的关系吗?他们总是兄弟姐妹吗?我认为,您可以将
兄弟姐妹()
与组合,以保留原始
开始元素作为组的一部分。我认为,您可以将
兄弟姐妹()
与组合,以保留原始
开始元素作为组的一部分。