首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getElementById()通配符

getElementById()通配符
EN

Stack Overflow用户
提问于 2010-11-25 16:36:52
回答 6查看 75.2K关注 0票数 30

我得到了一个div,在那里我得到了一些未定义级别的子节点。

现在,我必须将每个元素的ID更改为一个div。如何实现?

我想,因为它们有上行id,所以如果父id是id='path_test_maindiv‘,那么下一个向下的id就是'path_test_maindiv_child',因此我想,我可以通过通配符来解决这个问题,例如:

代码语言:javascript
复制
document.getElementById('path_test_*')

这个是可能的吗?或者还有其他方法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-25 16:52:27

不在本机JavaScript中。您有多种选择:

1)放入一个类,使用getElementsByClassName而不是it doesn't work in every browser

2)创建自己的函数。类似于:

代码语言:javascript
复制
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 ;)

票数 28
EN

Stack Overflow用户

发布于 2010-11-25 17:06:31

在其中一条评论中,你说:

(...)IE在我的页面上无论如何都是被禁止的,因为他不能用CSS得到它。这是一个开发人员的管理工具,所以只有几个人,他们无论如何都会使用FF

我认为你应该从一开始就遵循一种不同的方法,但为了它的价值,在较新的浏览器(ok,FF3.5)中,你可以使用document.querySelectorAll(),通过它你可以得到类似于jQuery的结果:

代码语言:javascript
复制
var elements = document.querySelectorAll('[id^=foo]');
// selects elements which IDs start with foo

更新: querySelectorAll()只支持 supported in IE < 8 and FF 3.0

票数 26
EN

Stack Overflow用户

发布于 2010-11-25 16:46:32

jQuery允许您查找特定属性以特定值开头的元素

在jQuery中,您可以使用

代码语言:javascript
复制
$('[id^="path_test_"]')
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4275071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档