Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我没有';t在<;部门>;?_Javascript_Xhtml_Html - Fatal编程技术网

Javascript 如果我没有';t在<;部门>;?

Javascript 如果我没有';t在<;部门>;?,javascript,xhtml,html,Javascript,Xhtml,Html,如果我没有声明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 beca

如果我没有声明
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>

职能部门了解你的部门(obj){
/* 
这里我想访问div对象,而不是按类访问,因为它很常见
所有部门
*/
}

在所有浏览器中都没有一种简单的方法可以访问它。你最好的办法就是在上面创建一个ID。有什么理由你不能这么做吗

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

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


等等。

那么我想您需要在类名旁边显式地指定ID。..DOM不会自己创建ID…

那么是时候使用DOM了。也许你可以用第一个孩子,最后一个孩子,下一个孩子


如果您使用的是JS库,如我推荐的MooTools或jQuery,您将拥有许多强大的选择器魔法(例如)。

为什么不使用jQuery和选择器?

不,DOM不创建ID。您需要添加ID。您可以使用jQuery按其类访问div。

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


onmouseover
属性中,
know\u your\u div
函数采用的
obj
参数作为
this
提供。因此,这就是你的
div

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

<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;

}

var oldObject=“”;
职能部门了解你的部门(obj){
//如果/ese/while/,则写入您的条件。。
obj.parentNode.do_Something();或obj.parentNode.ID/Class/value
oldObject=obj;
}

我刚才也写了同样的答案:)+1表示速度快!而且,很明显,在我看来是“对的”…:我知道。实际上,我正在为开发人员忘记写入id的div编写一个函数。我们不能这样做:this.parentNode???在函数中,“obj”参数不允许您访问div吗?当您尝试访问obj.style.width时会发生什么情况?你试过了吗?@pete我试过了,它起作用了。e、 g.obj.parentNode.SOME_Method();但是在大规模情况下,我需要指定/标识特定的DIV.@user,如果“大规模”是指您希望在函数“know_your_DIV(obj)”之外的其他代码部分中引用DIV作为全局变量,那么为什么不希望将“obj”保存在某个全局变量中呢?比如:大规模的var div;函数知道你的div(obj){div at_large\u scale=obj;…}@Pete,真的吗?但根据我的理解,如果将任何对象保存在Variable中,那么对象的状态可能是string/var中的change。我的意思是,对象的实际状态可能会以某种方式丢失。我不确定我们是否可以这样做,否则这将是一个完美的解决方案。“非常感谢你。”皮特下定决心。请注意:var div_at_large_scale=“must be initialized”这是我从早上开始尝试的,但现在我正在拔头发:)如果有很多div,那么这个方法有时会卡在中间……它会起作用,但这不是一个jQuery问题——因此我认为jQuery不是答案。
<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;

}