Javascript 搜索所有元素中的所有属性

Javascript 搜索所有元素中的所有属性,javascript,jquery,html,Javascript,Jquery,Html,是否有可能在每个元素的每个属性中进行搜索。使用Jquery或javascript 比如: 非常感谢如果问题是“是否有一个选择器可用于此?”答案是“否” 如果您可以列出属性,即使列表很长,也可以使用一组选择器,例如: $("[data-foo*=attr], [data-bar*=attr], [data-whatever*=attr]").remove(); 但是如果你的字面意思是任何可能的属性名,不,你必须自己搜索元素 您可以通过使用选择器*获得一个包含所有元素的(可能是大量的)jQuery

是否有可能在每个元素的每个属性中进行搜索。使用Jquery或javascript

比如:

非常感谢

如果问题是“是否有一个选择器可用于此?”答案是“否”

如果您可以列出属性,即使列表很长,也可以使用一组选择器,例如:

$("[data-foo*=attr], [data-bar*=attr], [data-whatever*=attr]").remove();
但是如果你的字面意思是任何可能的属性名,不,你必须自己搜索元素

您可以通过使用选择器
*
获得一个包含所有元素的(可能是大量的)jQuery集,然后通过查看每个元素的

但我认为如果是我,我会使用递归访问者:

//方便实用程序查找
//类似数组的结构匹配
var some=Function.prototype.call.bind(Array.prototype.some);
//用于检查属性是否匹配的回调
函数属性匹配(attr){
返回attr.value.indexOf(“attr”)!=-1;
}
//遍历此元素及其子元素
功能行走(元素){
var child,下一个;
//把这个拿走?
if(某些(element.attributes,attrMatch)){
//对
element.parentNode.removeChild(元素);
返回;
}
//不,走它的孩子
for(child=element.firstElementChild;
小孩
child=下一个){
下一个=child.nextElementSibling;
步行(儿童);
}
}
//短暂停顿后,开始在document.body处行走
setTimeout(函数(){
walk(document.body);
}, 800);

删除我
也请删除我,记住类是一个属性
也删除我
别把我赶走
我也不
如果问题是“是否有选择器可供使用?”答案是“否”

如果您可以列出属性,即使列表很长,也可以使用一组选择器,例如:

$("[data-foo*=attr], [data-bar*=attr], [data-whatever*=attr]").remove();
但是如果你的字面意思是任何可能的属性名,不,你必须自己搜索元素

您可以通过使用选择器
*
获得一个包含所有元素的(可能是大量的)jQuery集,然后通过查看每个元素的

但我认为如果是我,我会使用递归访问者:

//方便实用程序查找
//类似数组的结构匹配
var some=Function.prototype.call.bind(Array.prototype.some);
//用于检查属性是否匹配的回调
函数属性匹配(attr){
返回attr.value.indexOf(“attr”)!=-1;
}
//遍历此元素及其子元素
功能行走(元素){
var child,下一个;
//把这个拿走?
if(某些(element.attributes,attrMatch)){
//对
element.parentNode.removeChild(元素);
返回;
}
//不,走它的孩子
for(child=element.firstElementChild;
小孩
child=下一个){
下一个=child.nextElementSibling;
步行(儿童);
}
}
//短暂停顿后,开始在document.body处行走
setTimeout(函数(){
walk(document.body);
}, 800);

删除我
也请删除我,记住类是一个属性
也删除我
别把我赶走
我也不

我想,在网上融合了一些想法后,以下是解决方案:

               $("*").each(function() {
                    var ks=$(this);
                    $.each(this.attributes,function(i,a){
                        if (a.value== "exemple"){
                            $(ks).remove(); //or anything else
                        }
                    })
                })

我希望这将有助于人们在未来,非常感谢你的贡献

我想,在网上融合了一些想法后,以下是解决方案:

               $("*").each(function() {
                    var ks=$(this);
                    $.each(this.attributes,function(i,a){
                        if (a.value== "exemple"){
                            $(ks).remove(); //or anything else
                        }
                    })
                })

我希望这将有助于人们在未来,非常感谢你的贡献

我认为唯一的方法是编写选择每个元素的代码,并且您必须检查每个属性……这听起来像是一个X/Y问题-为什么您需要这样做?为什么您要删除所有包含
attr
的属性的元素,因为这将是您的“伪代码”-代码可以假设吗?看起来很奇怪,这可能很难做到itRe@RoryMcCrossan的评论:我认为唯一的方法是编写一些选择每个元素的代码,并且您必须检查每个属性……这听起来像是一个X/Y问题-为什么您需要这样做?为什么您要删除所有包含
attr
属性的元素,正如你的“伪”代码所假设的那样?看起来很奇怪,而且很难做到这一点