Javascript 查找&;删除泛型元素
显然,这是一个通用的例子,我必须适应通用的情况 我想删除一个没有ID或类的DOM元素。我可以使用很多方法,但我想知道我是否可以不用添加类(例如),JQuery是否可以进行这种匹配 做错了事,还是不可能? 谢谢Javascript 查找&;删除泛型元素,javascript,jquery,Javascript,Jquery,显然,这是一个通用的例子,我必须适应通用的情况 我想删除一个没有ID或类的DOM元素。我可以使用很多方法,但我想知道我是否可以不用添加类(例如),JQuery是否可以进行这种匹配 做错了事,还是不可能? 谢谢 很抱歉第一次发布这个问题,我正在覆盖div结果 $newTest中的结果是它没有删除最后一段$last $(文档).ready(函数(){ var$last=$('#test').children().last();//获取泛型元素 var$newTest=$('#test').clo
很抱歉第一次发布这个问题,我正在覆盖div结果
$newTest
中的结果是它没有删除最后一段$last
$(文档).ready(函数(){
var$last=$('#test').children().last();//获取泛型元素
var$newTest=$('#test').clone();//克隆我的DOM元素
$newTest.find($last.remove();
//找到并删除元素!
//这不行!
$('#result').html($newTest.html()+'
'+$last.html());
})
弗雷迪
弗雷德
弗雷迪克斯
弗雷迪
我认为您试图做什么的问题在于.clone()的问题
说明:创建匹配元素集的深度副本。
这里的关键词是deep copy,意思是$newTest
中的所有内容都不同于#test
。好的,这意味着在$newTest
中找不到保存为指针的变量$last
。$last
元素不存在
潜在解决方案?
考虑到您的用例,我不知道这是否可行,但由于您已经有了一些任意选择器,您可以保存该选择器并使用eval()
将该选择器应用于克隆对象:
$(文档).ready(函数(){
var$last=$($('#test').children().last());//获取泛型元素
变量选择器='.children().last()';
var$newTest=$('#test').clone();//克隆我的DOM元素
$newTest.find(eval(“$newTest”+选择器)).remove();
//找到并删除元素!
//这不起作用,$newTest是空的!
$('#result').html($newTest);
$('#result2').html('
'+$last.html());
})
弗雷迪
弗雷德
弗雷迪克斯
弗雷迪
不清楚您打算如何识别此“通用元素”?你的选择标准是什么?据我所知,它似乎起作用了?请尝试更改第一个和最后一个
标记的值,因为这可能会让您感到困惑。但是,如果要从DOM中删除元素,为什么需要克隆()
?可能我遗漏了一些东西,但是你不能直接使用$('#test').children().last().remove()吗代码>?@A.Iglesias上下文不同,这将集成到一个插件中,该插件循环任何DOM元素的所有子元素,我不知道它将包含什么。你说得对!我可以$('#test').find($last).remove()显然,它是有效的。没什么好说的…为了让它工作,试着添加数据属性之类的东西,并在新列表中搜索它的值。答案是正确的-使用clone,您将获得两个不同的对象,并提出解决方案,但不确定它是否适用于您的情况。@Ben感谢您的建议!这将有点复杂,它将是一个递归函数,因此我可能会将类指定为引用,并在最后删除所有类。谢谢!!:)