按标签和类获取元素

Mar*_*tin 19 javascript

我有一个脚本

var firstImg = row.getElementsByTagName('img')[0];
Run Code Online (Sandbox Code Playgroud)

然后

if (x){ firstImg.src='/images/checked.png'; }
Run Code Online (Sandbox Code Playgroud)

我想定义img应该是 class='something'

(先获得class ='something'的第一个img)提前10x!

gee*_*man 33

使用

 querySelectorAll('img.classname')[0]
Run Code Online (Sandbox Code Playgroud)

这将返回第一个图像,其中类设置为类名.不过jQuery更好!!

$('img.classname')
Run Code Online (Sandbox Code Playgroud)

  • 如果你只是在寻找第一个元素,你可以使用`querySelector('img.classname')`btw. (14认同)

ale*_*lex 7

只需设置它......

firstImg.className += "something";
Run Code Online (Sandbox Code Playgroud)

...要么...

firstImg.classList.add("something");
Run Code Online (Sandbox Code Playgroud)

如果你可以逃脱不支持旧版浏览器.

进一步阅读(免责声明:链接到我自己的博客).

如果您打算获取具有某个类名的元素,则可以使用...

document.getElementsByClassName("something");
Run Code Online (Sandbox Code Playgroud)

...要么...

document.querySelectorAll(".something");
Run Code Online (Sandbox Code Playgroud)

请记住getElementsByClassName(),不在<= IE8中.

您可以使用...

var getElementsByClassName(nodeList, className) {
    var i, results = [];
    for (i = 0; i < nodeList.length; i++) {
        if ((" " + nodeList[i].className + " ").indexOf(" " + className + " ") > -1) {
             results.push(nodeList[i]);
        }
    }

    return results; 
}
Run Code Online (Sandbox Code Playgroud)

当然,如果你使用的是jQuery,它会非常简单......

$(".something");
Run Code Online (Sandbox Code Playgroud)