使用JS定位类名迭代

时间:2011-01-24 18:30:02

标签: javascript jquery json class dom

我正在尝试将JSON数据解析为类名“slide_content”的特定迭代

得到这样的东西:

slide_content[0]

但JS没有提供getElementByClass()选择器。

有问题的API数据在这里: Converting Straight JS to JQuery

干杯! 迈尔斯

2 个答案:

答案 0 :(得分:2)

have support的较新浏览器(IE9及以上版本)document.getElementsByClassName(具有讽刺意味的是它支持的次数少于querySelectorAll,但我离题了......),但这可能会赢得'满足您的兼容性需求。在这种情况下,您可以使用类似的东西来获取类的节点数组。

var nodes = document.getElementsByTagName('*'),
    targetClass = 'myclass',
    result = [];

for(var i = 0, l = nodes.length; i < l; i++){
    if((nodes[i].className + ' ').indexOf(targetClass + ' ') !== -1){
        result.push(nodes[i]);
    }
}

这不是getElementsByClassName完全副本,因为该函数返回NodeList,但它应该足够接近大多数用途。

答案 1 :(得分:1)

使用jQuery。它允许您使用$('.someClass')检索具有给定类名的所有元素。

如果由于某些原因你不能使用jQuery或其他JS库,只需使用jQuery也使用的Sizzle选择器引擎 - 它不是很多代码,所以你甚至可以将它复制并粘贴到你项目的一个JS文件中(但不要这样做,这很难看:p)。但是既然你用jquery标记了你的问题,我假设你可以使用jQuery ......