我得到了一个div,在那里我得到了一些未定义级别的子节点。
现在,我必须将每个元素的ID更改为一个div。如何实现?
我想,因为它们有上行id,所以如果父id是id='path_test_maindiv‘,那么下一个向下的id就是'path_test_maindiv_child',因此我想,我可以通过通配符来解决这个问题,例如:
document.getElementById('path_test_*')这个是可能的吗?或者还有其他方法吗?
发布于 2010-11-25 16:52:27
不在本机JavaScript中。您有多种选择:
1)放入一个类,使用getElementsByClassName而不是it doesn't work in every browser。
2)创建自己的函数。类似于:
function getElementsStartsWithId( id ) {
var children = document.body.getElementsByTagName('*');
var elements = [], child;
for (var i = 0, length = children.length; i < length; i++) {
child = children[i];
if (child.id.substr(0, id.length) == id)
elements.push(child);
}
return elements;
}3)使用库或CSS选择器。如jQuery ;)
发布于 2010-11-25 17:06:31
在其中一条评论中,你说:
(...)IE在我的页面上无论如何都是被禁止的,因为他不能用CSS得到它。这是一个开发人员的管理工具,所以只有几个人,他们无论如何都会使用FF
我认为你应该从一开始就遵循一种不同的方法,但为了它的价值,在较新的浏览器(ok,FF3.5)中,你可以使用document.querySelectorAll(),通过它你可以得到类似于jQuery的结果:
var elements = document.querySelectorAll('[id^=foo]');
// selects elements which IDs start with foo更新: querySelectorAll()只支持 supported in IE < 8 and FF 3.0。
发布于 2010-11-25 16:46:32
jQuery允许您查找特定属性以特定值开头的元素
在jQuery中,您可以使用
$('[id^="path_test_"]')https://stackoverflow.com/questions/4275071
复制相似问题