我想获取 HTML 页面中的所有元素/节点,这些元素/节点包含以某物开头的属性(同样,属性名称以某物开头,而不是它们的值!)。例如,TinyMCE 倾向于为其保存的元素添加自定义属性,如 "mce_style"
、"mce_href"
、"mce_bogus"
等。我想要类似 CSS3 选择器的属性值,[attr^="mce_"]
,但不是值,属性名称。
当然,我可以遍历所有的DOM节点和它们的属性,并一一检查,但我想知道是否有更有效的方法。
请不要给我特定于 TinyMCE 的答案,我很确定有一个标志会阻止 TinyMCE 保存这些属性,但问题是通用的。
最佳答案
here's a simple demo查找包含以 mce_
开头的属性的所有元素。可能需要一些改进。
function getMCE() {
var el, attr, i, j, arr = [],
reg = new RegExp('^mce_', 'i'), //case insensitive mce_ pattern
els = document.body.getElementsByTagName('*'); //get all tags in body
for (i = 0; i < els.length; i++) { //loop through all tags
el = els[i] //our current element
attr = el.attributes; //its attributes
dance: for (j = 0; j < attr.length; j++) { //loop through all attributes
if (reg.test(attr[j].name)) { //if an attribute starts with mce_
arr.push(el); //push to collection
break dance; //break this loop
}
}
}
return arr;
}
console.log(getMCE())
关于javascript - 如何获取所有以某物开头的 HTML 属性(属性名称,*不是*它们的值!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313312/