Dev*_*mar 2 html javascript css jquery
此网页中隐藏了一些元素.现在,如果我想找到隐藏的元素:
var node = jQuery('body')[0];
$(node).find(":hidden").remove();
Run Code Online (Sandbox Code Playgroud)
这将从主节点中删除隐藏的元素(这进一步改变了页面的布局).我想要做的是复制(克隆)未隐藏的元素.我正在尝试这个:
var clone = node.cloneNode(true);
$(clone).find(":hidden").remove();
Run Code Online (Sandbox Code Playgroud)
但这会删除克隆中的所有元素,而不仅仅是隐藏的元素(正如预期的那样,因为它不在dom中).从克隆中删除隐藏元素的最佳方法是什么?
我认为问题是,在将克隆重新插入DOM之前,所有这些都被认为是隐藏的.
也许您可以首先标记要删除的隐藏元素,然后克隆然后删除标记的元素:
var $node = ... ; // jQuery object of node to be cloned
$node.find(':hidden').addClass('markedForRemoval');
var $clone = $node.clone();
$clone.find('.markedForRemoval').remove();
// tidy up:
$clone.find('.markedForRemoval').removeClass('markedForRemoval');
$node.find('.markedForRemoval').removeClass('markedForRemoval');
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/BYossarian/6ysq8/