按标签和类获取元素

时间:2012-10-02 07:16:51

标签: javascript

我有一个脚本

var firstImg = row.getElementsByTagName('img')[0];

以后

if (x){ firstImg.src='/images/checked.png'; }

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

(首先使用class ='something'获取img) 提前10倍!

4 个答案:

答案 0 :(得分:31)

使用

 querySelectorAll('img.classname')[0]

这将返回第一个图像,其中类设置为类名。但是jQuery更好!!

$('img.classname')

答案 1 :(得分:6)

设置它......

firstImg.className += "something";

...或...

firstImg.classList.add("something");

如果你不能支持旧的浏览器,那就可以了。

Further Reading(免责声明:链接到我自己的博客)。

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

document.getElementsByClassName("something");

...或...

document.querySelectorAll(".something");

请注意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; 
}

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

$(".something");

答案 2 :(得分:1)

这会选择带有class ='something'的第一个img

var firstImg = $('img.something')[0];

答案 3 :(得分:1)

如果你不能丢弃旧的浏览器,那么你需要一个循环。

var imgs = row.getElementsByTagName('img'),
    some_class = 'something',
    i, first_img;

for (i = 0; i < imgs.length; i++) {
    if ((' ' + imgs[i].className + ' ').indexOf(' ' + some_class + ' ') > -1) {
       first_img = imgs[i];
       break;
    }
}