2016-11-22 74 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>