Как получить идентификатор родительского элемента в JQuery или Javascript - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть неупорядоченный список элементов html из списка при нажатии на любой список, в котором я хочу получить идентификатор родительского тега ul.

       <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 будет123.

1 Ответ

5 голосов
/ 27 сентября 2019

Первая проблема в том, что ваша функция validate() не знает, к чему относится this, поэтому вам нужно добавить ее как validate(this);

Тогда мы можем сделать это следующим образом.

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

Кроме того, у вас не должно быть <li> в качестве потомка другого <li>, используйте что-то подобное этой структуре.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...