Heim >Web-Frontend >HTML-Tutorial >css样式除了用id选择器以外,可以唯一确定一个dom元素吗_html/css_WEB-ITnose

css样式除了用id选择器以外,可以唯一确定一个dom元素吗_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:15:251550Durchsuche

正在做的功能,需要确定修改的目标,但是,并不是每一个dom元素都有id,所以卡在这里,在没有id的时候如何确定一个dom元素?


回复讨论(解决方案)

方法很多啊,根据条件来选择,如通过class属性,
比如遍历判断其他属性

楼主看看JQ的选择器用法就知道了,有很多形式。其实从本质上来讲,它的原理就象楼上说的是遍历元素并根据它的其它属性来进行判断,但比你自己写方便多了。

当然,也不建议仅仅是因为获取几个对象容易点就使用JQ。有空多看看它的功能,如果能让它在你的页面里发挥较多的作用,使用它的便利和代价之比就会更合适了。

我还忘说一点比较有用的了,就是通过和你要找的对象有关的其它容易找的对象来找你这个对象。呵呵,听来绕口,但其实很好理解,比如:


....
  
  • ...


假设你想找这里面的LI,没必要遍历所有的document内的元素对象,只要通过它的上级UL所在的上级DIV,因为它有ID名为theforever_csdn,找到它,再找它的UL子对象里的LI子对象就可以了。

这是通过父元素找子元素,类似的,还可以通过兄弟元素找兄弟元素,通过子元素找父元素。多看看DOM方法就行了。

我还忘说一点比较有用的了,就是通过和你要找的对象有关的其它容易找的对象来找你这个对象。呵呵,听来绕口,但其实很好理解,比如:


....
  
  • ...


假设你想找这里面的LI,没必要遍历所有的document内的元素对象,只要通过它的上级UL所在的上级DIV,因为它有ID名为thefore……
有人知道除了id,之外还能怎么唯一确定一个dom元素么?通过class和父级dom,都没办法。或者我没想到吧。

哎,郁闷呀,没办法唯一确定一个dom元素,通过class和上下级关系,都不能保证肯定是唯一的

哎,郁闷呀,没办法唯一确定一个dom元素,通过class和上下级关系,都不能保证肯定是唯一的

如果支持CSS3:
section:nth-child(1) {} /* 选择第一个 

 */
section:nth-child(2) {} /* 选择第二个 
 */
section:nth-child(N) {} /* 选择第N个 
 */
section:nth-last-child(1) {} /* 选择最后一个 
 */
section:nth-last-child(2) {} /* 选择倒数第二个 
 */
section:nth-last-child(N) {} /* 选择倒数第N个 
 */

第几个子元素都挨个定位得到,怎么就不能保证唯一了?这比用ID都更精准。因为ID其实是可以写同样的好几个的,当然,结果只会找到第一个,但如果你忘了前面写过,后面再写同样ID也不是不可能。

比较复杂,你是需要确定 dom元素 在dom文档树中的位置
而这个位置在 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn