Javascript 在DOM中搜索不带JQuery的特殊html标记

Javascript 在DOM中搜索不带JQuery的特殊html标记,javascript,Javascript,我正在做一个项目,需要在页面上寻找特殊标记,然后获取其属性。标记的示例如下所示: <ub:widget tag1="abc" tag2="doeraeme"></ub:widget:> 如果没有JQuery,我如何使用Javascript搜索每个ub:widget,然后分别收集它们的属性?使用getElementsByTagName然后getAttribute: window.onload = function() { var elements = docu

我正在做一个项目,需要在页面上寻找特殊标记,然后获取其属性。标记的示例如下所示:

<ub:widget tag1="abc" tag2="doeraeme"></ub:widget:>


如果没有JQuery,我如何使用Javascript搜索每个ub:widget,然后分别收集它们的属性?

使用
getElementsByTagName
然后
getAttribute

window.onload = function() {
    var elements = document.getElementsByTagName("ub:widget");
    for (var i = 0; i < elements.length; i++) {
        var widget = elements[i];
        var tag1 = widget.getAttribute("tag1");
        var tag2 = widget.getAttribute("tag2");
         alert("Found a widget! tag1 is " + tag1 + " and tag2 is " + tag2);
    }
}
window.onload=function(){
var elements=document.getElementsByTagName(“ub:widget”);
对于(var i=0;i

如果您需要更通用的标记名,即没有预定义的标记名,则可以迭代所有元素,并查找标记名中包含“:”的元素,通常表示“特殊标记”:

window.onload=function(){
var elements=document.getElementsByTagName(“*”);
对于(var i=0;i
使用通用方法。

queryselectoral()
选项吗?
window.onload = function() {
    var elements = document.getElementsByTagName("*");
    for (var i = 0; i < elements.length; i++) {
        var curElement = elements[i];
        var curTagName = curElement.tagName.toLowerCase();
        if (curTagName.indexOf(":") > 0) {
            var widget = curElement;
            var message = "Found a widget! Tag name is: " + curTagName;
            if (widget.attributes.length === 0) {
                message += " without any attributes";
            } else {
                message += " with " + widget.attributes.length + " attributes: ";
                for (var j = 0; j < widget.attributes.length; j++) {
                    var curAttribute = widget.attributes[j];
                    message += "\n" + curAttribute.name + " = " + curAttribute.value;
                }
            }
            alert(message);
        }
    }
}