是否有可能搜索每个元素中的每个属性。使用Jquery或javascript
像:
$("[*=attr]").remove();
非常感谢
答案 0 :(得分:2)
如果问题是"是否有一个选择器我用于此?"答案是"没有。"
如果您可以列出属性,即使它是一个长列表,您也可以使用一组选择器来完成,例如:
$("[data-foo*=attr], [data-bar*=attr], [data-whatever*=attr]").remove();
但如果你的字面意思是任何可以想象的属性名称,不,你就必须自己搜索这些元素。
你可以通过使用选择器*
来获得一个(可能很大的)jQuery集,其中包含所有元素,然后{{1}通过浏览每个元素的DOM attributes
list来获取。
但我认为如果是我,我会使用递归访问者:
filter

// Convenient utility to find if any entry in
// an array-like structure matches
var some = Function.prototype.call.bind(Array.prototype.some);
// Callback for checking if an attribute matches
function attrMatch(attr) {
return attr.value.indexOf("attr") != -1;
}
// Walk this element and its children
function walk(element) {
var child, next;
// Remove this one?
if (some(element.attributes, attrMatch)) {
// Yes
element.parentNode.removeChild(element);
return;
}
// No, walk its children
for (child = element.firstElementChild;
child;
child = next) {
next = child.nextElementSibling;
walk(child);
}
}
// After a brief pause, start walking at document.body
setTimeout(function() {
walk(document.body);
}, 800);

这是为了清晰而不是简洁而写的,没有jQuery作为jQuery对这个特定任务没有多大帮助。可以轻松地jQuery-it-up。例如:
<div>
<div data-foo="blah attr blah">delete me</div>
<div data-bar="nope">
<span class="attr">delete me too, remember class is an attribute</span>
<span data-whatever="blarg attr">delete me too</span>
<span>don't remove me</span>
</div>
<span data-foo="no match">nor me</span>
</div>
&#13;
// Convenient utility to find if any entry in
// an array-like structure matches
var some = Function.prototype.call.bind(Array.prototype.some);
// Callback for checking if an attribute matches
function attrMatch(attr) {
return attr.value.indexOf("attr") != -1;
}
// Walk this element and its children
function walk(element) {
// Remove this one?
if (some(element.attributes, attrMatch)) {
// Yes
$(element).remove();
return;
}
// No, walk its children
$(element).children().each(function() {
walk(this);
});
}
// After a brief pause, start walking at document.body
setTimeout(function() {
walk(document.body);
}, 800);
&#13;
答案 1 :(得分:0)
我弄明白,在网上合并了一些想法之后,这就是解决方案:
$("*").each(function() {
var ks=$(this);
$.each(this.attributes,function(i,a){
if (a.value== "exemple"){
$(ks).remove(); //or anything else
}
})
})
我希望这将有助于未来的人们,非常感谢您的贡献。