Переход к первому родителю.
Возможно ли, как-то перескочить к самому верхнему родителю, удовлетворяющего условие? Например:
В списке может быть бесконечное вхождение ul в тег li. И нужно попасть именно в первый UL, от места вызова функции. При чем список динамический <li> <ul Нужно попасть сюда> <li> <ul> <li>Место вызова функции</li> </ul> </li> </ul> </li> <li> второй блок </li> <li> Третий блок </li> |
lordenas,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .red { background-color: #FF0000; } ul { border: 1px solid #0000FF } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $("li").on("click", function() { $(this).parents("ul ul").last().addClass("red") }) }); </script> </head> <body> <ul> <li> <ul> Нужно попасть сюда <li> <ul> <li>Место вызова функции</li> </ul> </li> </ul> </li> <li> второй блок </li> <li> Третий блок </li> </ul> </body> </html> |
<li> <ul id='ul1'> <li> <ul id='ul2'> <li>Место вызова функции</li> </ul> </li> </ul> </li> <li> второй блок </li> <li> Третий блок </li> <div id='res'></div> <script> var parent, last = ''; [].forEach.call(document.querySelectorAll('li'), function(elem) { elem.onclick = function() { parent = elem.parentNode; last = parent.nodeName == 'UL'? parent.id : last ; res.innerText = last; } }); </script> |
Часовой пояс GMT +3, время: 09:03. |