Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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正在运行的标记_Javascript_Html - Fatal编程技术网

查找JavaScript正在运行的标记

查找JavaScript正在运行的标记,javascript,html,Javascript,Html,在后端生成HTML源代码时,我使用单独的独立小部件 我只是将这样的标记片段包含到结果HTML输出中 <div> I want to work with this DOM element <script> new Obj(/*but I can't get this <div> as a parameter! */); </script> </div> 我想使用这个DOM元素 新的

在后端生成HTML源代码时,我使用单独的独立小部件

我只是将这样的标记片段包含到结果HTML输出中

 <div>
     I want to work with this DOM element
     <script>
          new Obj(/*but I can't get this <div> as a parameter! */);
     </script>
 </div>

我想使用这个DOM元素
新的Obj(/*但我不能将其作为参数!*/);

我正在寻找一种方法来查找创建
obj
的DOM元素(没有任何唯一ID)。这将为我的应用程序增加灵活性并加快开发速度。但是在JavaScript中这在技术上是可能的吗?

您可以在其中植入一个元素,然后获取它的父元素,然后删除该元素

<div>
 I want to work with this DOM element
 <script>
      document.write("<div id='UniqueGUID_3477zZ7786_' style='display:none;'></div>");
      var thatDivYouWanted;
      (function(){
       var target = document.getElementById("UniqueGUID_3477zZ7786_");
       thatDivYouWanted = target.parentNode;
       target.parentNode.removeChild(target);
      })();
      new Obj(/*but I can't get this <div> as a parameter! */);
 </script>
</div>

我想使用这个DOM元素
文件。填写(“”);
你想要什么;
(功能(){
var target=document.getElementById(“UniqueGUID_3477zZ7786”);
ThatDivYouwant=target.parentNode;
target.parentNode.removeChild(目标);
})();
新的Obj(/*但我不能将其作为参数!*/);

如果您事先知道页面的结构,您可以使用以下示例:

document.getElementsByTagName("div")[4]

要访问第5部分,请使用以下代码:


功能Obj(颜色){
var scriptTags=document.getElementsByTagName(“脚本”);
var scriptTag=scriptTags[scriptTags.length-1];
//找父母或做任何事
var divTag=scriptTag.parentNode;
divTag.style.backgroundColor=颜色;
}
我想使用这个DOM元素
新Obj(“绿色”);
我想使用这个DOM元素
新Obj(“黄色”);
我想使用这个DOM元素
新Obj(“石灰”);

我认为你的方法并不理想。如果您试图获取
,则应使用JavaScript和API以编程方式完成,使您能够查询目标

您可以在单独的作用域中以受控方式执行(DOM就绪,然后查询,然后是您的方法),而不是内联执行。您可以使用ID、CSS类名或JavaScript中的任何其他CSS选择器来定位div

这使您几乎可以在任何地方执行以下操作,而不是内联操作

// on dom ready...
var div = document.getElementById('myDiv'), // replace with any other selector method
    myObject = new Object(div);

需要找到你的div吗

如果要在后端生成脚本,请为
分配一个唯一的
id
,并在生成脚本时将相同id传递到
标记中的任何代码中。而不是将脚本放在div中,为什么不让脚本生成div,然后您就可以立即访问它呢?在windowdom下,所有内容都遵循xml节点结构,因此您可以交替查找父节点及其属性。在本例中,对于封闭的div.Guys,具有唯一ID的解决方案非常好,我只是想知道如何使代码尽可能简单possible@user711819:老实说,我第一次听说JavaScript中的
parentXML
方法。你能给我看看代码吗?如何从正在运行的脚本中访问父DOM元素?这是一个相当不错的解决方案+1破解,但可以完成这项工作。是的,我的方法并不完美,但它允许将代码划分为独立的块,这些块非常独立,互不了解。您可以使用函数将代码划分为这样的块。请记住,内联javascript代码是随着HTML的解释一起执行的,因此在前一个div中的代码完全执行之前,不会向用户显示下一个div。