原生js怎么通过rel得到div对象

如题所述

第1个回答  2016-12-05
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <div rel="container" attr1="1" attr2="2">
            这是div的内容1
        </div>
        <div id="myid" attr1="1" attr2="2">
            这是div的内容2
        </div>
        <script type="text/javascript">
            window.onload = function() {
                var obj1 = getElement("div", "rel", "container");
                var obj2 = getElement("div", "id", "myid");
                alert(obj1.innerText);
                alert(obj2.innerText);
            };

            /**
             *根据Tag名称,属性名,属性值取对象
             */
            function getElement(tagName, attrName, attrValue) {
                var eles = document.getElementsByTagName(tagName);
                if (eles) {
                    for (var idx = 0; idx < eles.length; idx++) {
                        var ele = eles[idx];
                        var attrs = ele.attributes;
                        if (attrs && attrs[attrName]) {
                            var obj = attrs[attrName];
                            if (obj.value = attrValue) {
                                return ele;
                            }
                        }
                    }
                }
                return null;
            };
        </script>
    </body>
</html>

第2个回答  2016-12-05
----解决思路----------------------
bytagname得到集合,
然后遍历判断是否存在这个属性,
然后判断属性值是否待于特定值
HTML code<div>ss</div>
<div rel="m">some test</div>
<div rel="n">ss</div>
<script type="text/javascript" >
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
if (divs[i] && divs[i]["rel"] && divs[i]["rel"] == "n") {
alert(divs[i].innerHTML);
}
}
</script>本回答被网友采纳