【问题标题】:how to get the parent element id in JQuery or Javascript如何在 JQuery 或 Javascript 中获取父元素 ID
【发布时间】:2020-01-27 10:46:47
【问题描述】:

单击任何我想要获取父 ul 标记 ID 的列表时,我从列表中获得了未排序的 html 元素列表。

       <ul id="123">
             <li>
               <li>test1</li>
                 <a href="#" onclick="validate()"/>
                </li>
             </li>
              ........
              ........
         </ul>

function validate(){
         var test=$(this).parent().parent().attr('id');
            alert(test);
          }

上面的验证函数测试变量结果应该是 ul tag id 是 123。

【问题讨论】:

  • 另外,&lt;ul&gt; 是第三个父级,而不是第二个父级(并且您的 &lt;a&gt; 未关闭)
  • 试试$(this).parent('ul').attr('id')
  • 看起来像你想要的$(this).closest('ul')
  • 尝试了 $(this).parent('ul').attr('id') 但它就像未定义一样

标签: javascript jquery html


【解决方案1】:

第一个问题是你的函数validate()不知道this指的是什么,所以你需要像validate(this)一样添加它;

那我们就可以这样了。

function validate(obj) {
  var test = $(obj).closest("ul").attr('id');
  alert(test);
}

另外,你不应该让 &lt;li&gt; 作为另一个 &lt;li&gt; 的孩子使用类似这种结构的东西。

<ul id="123">
  <li>
    <a href="#" onclick="validate(this)">test1</a>
    <ul id="456">
      <li>
        <a href="#" onclick="validate(this)">test2</a>
      </li>
    </ul>
  </li>
</ul>

function validate(obj) {
  var test = $(obj).closest("ul").attr('id');
  alert(test);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="123">
  <li>
    <a href="#" onclick="validate(this)">test1</a>

    <ul id="456">
      <li>
        <a href="#" onclick="validate(this)">test2</a>
      </li>
    </ul>
  </li>
</ul>

【讨论】:

  • 尝试使用 validate(this) 也无法正常工作。有关在运行时构建整个 UI 的信息。基于服务器端数据。我也不想在 ul 上添加另一个超链接。无论如何感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2021-08-18
  • 2011-09-06
  • 2014-07-29
  • 2015-11-03
  • 2016-08-22
  • 1970-01-01
相关资源
最近更新 更多