2016-11-22 72 views
1

我试图从脚本标记使用$(document.currentScript)遍历树,然后遍历树,选择输入元素。我已经尝试了很多变种,但它们似乎都不起作用。我能得到顶格,$(document.currentScript).closest("div").parent("div")但没有运气下去JQuery树遍历 - 向上树而不是向下

<div id="p9t2c13"> 
    <div class="control"> 
     <label for="c13"> 
     <h3> HiddenInstanceId </h3> 
     <p> 
      <script> 
       if (typeof counter == "undefined") { 
        counter = 0; 
       } 

       counter++; 

       var test = $(document.currentScript).closest("div").parent("div"); 
       console.log($(test).find("input")) 
      </script> 
     </p> 
     </label> 
     <p class="ctrlinvalidmessage"></p> 
     <fieldset> 
     <div class="input text"> 
      <input id="c13" type="text" name="c13" value="" maxlength="1000"> 
     </div> 
     </fieldset> 
    </div> 
</div> 
+1

什么的console.log(试验);返回? –

+0

它返回'[div#p9t2c13,prevObject:init [1],上下文:脚本,选择器:“.closest(div).parent(div)”]'并引用正确的对象,但不是下面的''标记我正在寻找 –

+1

[参考资料](https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript)请务必注意,如果代码中不包含

1

如果您在寻找位于当前脚本下面的东西之前等待$(document).ready()它工作正常。
这里它的工作:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="p9t2c13"> 
 
    <div class="control"> 
 
     <label for="c13"> 
 
     <h3> HiddenInstanceId </h3> 
 
     <p> 
 
      <script> 
 
       if (typeof counter == "undefined") { 
 
        counter = 0; 
 
       } 
 

 
       counter++; 
 

 
       var test = $(document.currentScript).closest("div").parent("div"); 
 
       // here is the change: 
 
       $(document).ready(function() {console.log(test.find("input"));}); 
 
      </script> 
 
     </p> 
 
     </label> 
 
     <p class="ctrlinvalidmessage"></p> 
 
     <fieldset> 
 
     <div class="input text"> 
 
      <input id="c13" type="text" name="c13" value="" maxlength="1000"> 
 
     </div> 
 
     </fieldset> 
 
    </div> 
 
</div>