如果我没有在<div>中声明ID?</div>怎么办?

时间:2011-03-31 08:13:12

标签: javascript xhtml html

如果我没有声明<div>属性,如何访问任何id。 DOM是否自己创建ID?

e.g。

<div class="common_class" onmouseover="know_your_div(this)">
</div>

<script type="text/script">
   function know_your_div(obj){
     /* 
     Here i want to access the div object not by class because of it's common
     for all div
     */
   }
</script>

7 个答案:

答案 0 :(得分:4)

嗯,您的问题的答案就在您的代码中。

obj功能所需的know_your_div参数在this属性中以onmouseover的形式提供。因此,这是您的div

答案 1 :(得分:3)

在所有浏览器中都没有简单的方法。最好的办法就是在上面创建一个ID。有没有理由你不能?

除此之外,你必须使用DOM遍历方法导航到它,如果你的DOM结构发生了变化,那么这些方法非常不稳定。代码如:

document.body.childNodes[3].childNodes[2].childNodes[4];

document.getElementsByTagName('DIV')[22]; // 23rd DIV in the page

等...

答案 2 :(得分:0)

然后我猜你需要在类名旁边明确指定ID .DOM不会自己创建ID ......

答案 3 :(得分:0)

然后是时候使用DOM了。也许你可以使用诸如firstChild,lastChild,nextSibling ...... http://de.selfhtml.org/javascript/objekte/node.htm

之类的东西

如果你正在使用一个JS库,比如我推荐的MooTools或jQuery,那么你手上就会有很多强大的选择器魔法(例如http://mootools.net/demos/?demo=Slick.Finder)。

答案 4 :(得分:0)

为什么不使用JQuery和选择器? http://api.jquery.com/id-selector/

答案 5 :(得分:0)

不,DOM不会创建ID。您需要添加ID。您可以使用jQuery通过它的类来访问div。

答案 6 :(得分:0)

答案在你的问题中,让我试着帮助你

<div class="common_class" onmouseover="know_your_div(this)"> </div>

var oldObject = "";
function know_your_div(obj) {

  // write ur condition if/ese/while/..

    obj.parentNode.do_Something(); OR obj.parentNode.ID/Class/value

    oldObject = obj;

}