Javascript 如何使用Jquery查找最近的父元素属性值

Javascript 如何使用Jquery查找最近的父元素属性值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我在使用Jquery获取最近的父元素属性值时遇到了一个问题。有人能帮我吗。我的元素结构如下: <ul class="Someclass"> <li><span id=3 class="heading"></span> <ul> <li> <ul> <li><span ><button onclick= "redirect()"></button>

我在使用Jquery获取最近的父元素属性值时遇到了一个问题。有人能帮我吗。我的元素结构如下:

<ul class="Someclass">
<li><span id=3 class="heading"></span>
  <ul>
    <li>
     <ul> <li><span ><button onclick= "redirect()"></button></span</li>
     <ul>
    </li>
  </ul>
</li>
<ul>

<script type="text/javascript">
function redirect() {
    alert(....)
}
</script>
    • 这应该可以

      alert($(this).closest('.heading').attr('id'));
      
      这应该可以做到

      alert($(this).closest('.heading').attr('id'));
      

      能否将其作为参数传递给重定向函数?您可能会以某种方式将该值保存在循环中的变量中。

      能否将其作为参数传递给重定向函数?您可能会以某种方式将该值保存在循环中的变量中。

      使用当前代码,将单击的元素引用传递给函数,如

      <button onclick= "redirect(this)">asdf</button>
      
      演示:

      Bu更推荐的方法是使用jQuery事件处理程序,如

      <button class="redirect">asdf</button>
      

      演示:

      使用当前代码,将单击的元素引用传递给函数,如

      <button onclick= "redirect(this)">asdf</button>
      
      演示:

      Bu更推荐的方法是使用jQuery事件处理程序,如

      <button class="redirect">asdf</button>
      
      演示:

      试试看

      function redirect(elem) {
          alert($(elem).closest('.Someclass > li').children('span').attr('id'))
      }
      
      将标记更改为:

      <li><span><button onclick= "redirect(this)"></button></span</li>
      
      试试看

      function redirect(elem) {
          alert($(elem).closest('.Someclass > li').children('span').attr('id'))
      }
      
      将标记更改为:

      <li><span><button onclick= "redirect(this)"></button></span</li>
      

    • 如果您可以将
      id
      class
      更改为parent
      li

      更多关于

      Jquery

      function redirect(elem) {
          var myid = $(elem).parents(".heading").attr("id");
          alert(myid);
      }
      
      HTML

      <ul class="Someclass">
      <li id="3" class="heading">
        <ul>
          <li>
           <ul> <li><span ><button onclick="redirect(this)" id="haha">Go</button></span</li>
           <ul>
          </li>
        </ul>
      </li>
      <ul>
      

          • Go如果您可以将
            id
            class
            更改为parent
            li

            更多关于

            Jquery

            function redirect(elem) {
                var myid = $(elem).parents(".heading").attr("id");
                alert(myid);
            }
            
            HTML

            <ul class="Someclass">
            <li id="3" class="heading">
              <ul>
                <li>
                 <ul> <li><span ><button onclick="redirect(this)" id="haha">Go</button></span</li>
                 <ul>
                </li>
              </ul>
            </li>
            <ul>
            

                • Goi也尝试使用了“最近的”和“家长”,但我无法准确获得:(我也尝试过使用“最近的”和“家长”,但我无法准确获得:(是的,我将在参数中传递它。如果它起作用,请将其标记为正确,以便其他人能够快速找到解决方案。此选项或其他选项。无论哪个选项最有效,我都将在参数中传递此选项。如果它起作用,请将其标记为正确,以便其他人能够快速找到解决方案。此选项或其他选项。无论哪个选项最有效,我都可以使用parent?beca使用有时会有其他同名类与该元素最接近。@VinothBabu如果您可以向该元素添加一个唯一的类会更好,但在这种情况下很难。是否可以使用parent()获取?@PaulD。这将与
                  .closest()相同
                  inresult@VinothBabu您需要有一种唯一的方法来定位
                  li
                  元素…无论如何,请看一下最接近的类。我可以使用parent吗?因为有时会有其他类与该元素最接近,名称相同。@VinothBabu如果您可以向该元素添加唯一的类,则会更好。在这种情况下,这很困难。是我吗无法使用parent()?@PaulD获取。这将与中的
                  .closest()
                  相同result@VinothBabu您需要有一种独特的方法来定位
                  li
                  元素……无论如何,请看一看