首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery树遍历-向上遍历树,但不向下遍历

JQuery树遍历-向上遍历树,但不向下遍历
EN

Stack Overflow用户
提问于 2016-11-22 08:03:21
回答 2查看 91关注 0票数 1

我尝试使用$(document.currentScript)从脚本标记遍历树,然后再向下遍历树,选择输入元素。我尝试了许多不同的下树方法,但它们似乎都不起作用。我能拿到最上面的div,$(document.currentScript).closest("div").parent("div"),但没什么运气

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2016-11-22 09:11:34

听起来你可能有一个解决方案,但这里是使用基本上相同的代码的另一种方法。将当前脚本值存储在一个变量中,然后在文档就绪回调中引用该值:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2016-11-22 09:35:01

如果您在查找位于当前脚本下面的内容之前等待$(document).ready(),那么它可以很好地工作。

下面是它的工作原理:

代码语言:javascript
复制
<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>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40731666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档