如何通过其类名来定位跨度?

时间:2011-04-18 17:15:51

标签: javascript

我希望某些跨度的innerHTML没有唯一的ID,但它们确实有唯一的类

我想做var1 = document.getElementByCLASSNAME('')

之类的事情

修改

我不能使用Jquery,我甚至不能给元素propper ID。长篇故事

3 个答案:

答案 0 :(得分:3)

document.getElementsByClassName = function(className)
{
    var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
    var allElements = document.getElementsByTagName("*");
    var results = [];
    var element;
    for (var i = 0; (element = allElements[i]) != null; i++) {
        var elementClass = element.className;
        if (elementClass && elementClass.indexOf(className) != -1 
            && hasClassName.test(elementClass))
            results.push(element);
    }

    return results;
}

基于这篇关于devshed的帖子:Get all elements of class 'abc'

答案 1 :(得分:2)

有一个getElementsByClassName方法(由主流浏览器的最新版本支持),它返回具有指定类的所有元素的列表。当然,许多用户仍然使用较旧的浏览器,因此更简单的解决方案是使用jQuery等库并选择$('.someclass')的元素。

答案 2 :(得分:0)

使用getElementsByClassName可能会导致IE版本出现问题。 querySelectorAll应该更广泛地兼容。即document.querySelectorAll('。my-class')或document.querySelectorAll('div.my-class')