簡體   English   中英

jQuery樹遍歷-上升樹但不下降

[英]JQuery Tree Traversal - Goes Up Tree but not Down

我試圖使用$(document.currentScript)從腳本標簽向上遍歷樹,然后向下遍歷樹,選擇輸入元素。 我已經嘗試了多種嘗試,但是它們似乎都不起作用。 我能夠獲得最高的div, $(document.currentScript).closest("div").parent("div")但運氣不好

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

聽起來您可能有解決方案,但這是使用基本上相同的代碼的另一種方法。 您將當前腳本值存儲在變量中,然后在文檔就緒回調中引用該值:

<div id="p9t2c13">
   <div class="control">
      <label for="c13">
         <h3> HiddenInstanceId </h3>
         <p>
            <script>
               (function(){
                   var thisScript = $(document.currentScript);

                   $(function(){
                       var test = thisScript.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>

如果您等待$(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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM