繁体   English   中英

getelementbyid和标记名和类名

[英]getelementbyid and tagname and classname

我想知道如何使用纯javascript获取元素。

我的代码如下:

        <html>
             <body>
                 <div id="abc" class="xy"> 123 </div>
                <p id="abc" class="xyz"> 123 </p>
              <span id="foo" class="foo2"> foo3 </span>
             </body>
           </html>

在这里,我想找到组合元素:

  1. find元素有id abc和tagname p
  2. find元素有id abc和classname xy
  3. find元素具有classname foo2和tagname span
  4. find元素有id abc和classname xy和tagname div

我知道每页不能使用多个ID。 但在更糟糕的情况下,对不同的标签使用相同的ID是否可以? 在HTML?

您可以使用querySelectorAll获得更多“高级”选择。 对于你的三个例子:

  1. document.querySelectorAll("p#abc")
  2. document.querySelectorAll(".xy#abc")
  3. document.querySelectorAll("span.foo2")

如果HTML中的ID不是唯一的,那么无论使用多少个浏览器进行测试,都无法保证使用它们的任何Javascript都能正常工作。

因此,您要查找的前两项内容将使用getElementById,因为您的ID应该是唯一的。

对于第二个,使用getElementsByTagName,并遍历结果以检查每个是否具有所需的类。

你可以这样做:

document.getElementByXXX - >你可以把Tag,Name,Calss,ID代替XXX

element = document.getElementById(id);

例如,如果要更改bg颜色:

 window.onload = function(){
 document.getElementById("your_id").style.background ="red";
}

这里有一些很好的例子: http//xahlee.info/js/js_get_elements.html

@Raj Mehta的工作:

 <html>
  <head>
   <script>
    function load(){


var myObj1 = document.getElementById("root").getElementsByClassName("xyz");
var myObj2 = document.getElementById("root").getElementsByClassName("xy");
var myObj3= document.getElementById("root").getElementsByClassName("foo2");
var myObj4= document.getElementById("root").getElementsByTagName("p");
var myObj5= document.getElementById("root").getElementsByTagName("div");


myObj1[0].style.color="red";
myObj2[0].style.color="green";
myObj3[0].style.color="skyblue";
myObj4[1].style.color="purple";
myObj5[1].style.color="blue";
}
</script>
</head>
       <body onload="load()" >  
         <div id="root">
                 <div id="abc" class="xy"> 123 <div> here you combine using array[0],[1],[2]... depends on you structure</div>  </div>
                 <p id="abc" class="xyz"> 123 </p>
                <span name="span" id="foo" class="foo2"> foo3 </span>
                <p id="new" name="name"> one more lvl</p>
          </div>
         </body>
       </html>

没有其他方法可以使用或使用jquery。

由于你可以使用具有唯一ID的HTML(如果它们根本没有ID,则需要在HTML中使用),因此请将HTML纳入此范围:

<html>
    <body>
        <div id="abc1" class="xy"> 123 </div>
        <p id="abc2" class="xyz"> 123 </p>
        <span id="foo" class="foo2"> foo3 </span>
    </body>
</html>

然后为您的三个不同选择:

  1. document.getElementById("abc1")获取id为abc1<div>

  2. document.getElementById("abc2")您提供id为abc2<p>

  3. document.getElementById("foo")您提供id为foo<span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM