如何获取对象元素?

时间:2012-12-28 14:00:49

标签: jquery

当我点击元素test2

时,我需要获取对象test1
<ul> 
      <li id="test1"><a href="javascript: void(0);">Label one</a>
        <ul id="test2">
          <li><a href="test.php">test</a></li>
         </ul>
      </li>
      <li id="test3"><a href="javascript: void(0);">Label two</a>
        <ul id="test4">
          <li><a href="test.php">test</a></li>
        </ul>
      </li>
</ul>

点击test2时如何获取对象li id="test1"

5 个答案:

答案 0 :(得分:2)

使用$.children

$('li').click(function(){
  var $target = $(this).children('ul');
});

答案 1 :(得分:2)

使用jquery:

$('#test1').on('click', function (e) {
    var test2 = $('#test2);
});

vanilla javascript:

var test1 = document.getElementById('test1');
test.addEventListener('click', grabTest2, false);

function grabTest2() {
    var test2 = document.getElementById('test2');
}

答案 2 :(得分:1)

最好通过class来识别元素,而不是使用ids。我已将liClass类用于父级li,将ulClass用于子级ul。如果您使用的是neigher class或id,这将save生成lot of ids及其操作,并且不会影响页面上的其他li和ul。

<强> Live Demo

HTML

<ul> 
      <li id="test1" class="liClass"><a href="javascript: void(0);">Детские коляски</a>
        <ul id="test2" class="ulClass">
          <li><a href="test.php">test</a></li>
         </ul>
      </li>
      <li id="test3"><a href="javascript: void(0);">Детские коляски</a>
        <ul id="test4">
          <li><a href="test.php">test</a></li>
        </ul>
      </li>
</ul>

的Javascript

$('.liClass').click(function(){
  obj = $(this).find('.ulClass');
})

答案 3 :(得分:0)

在您的热门ul元素

中添加一个课程
<ul class="test"> 
      <li id="test1">
          <a href="javascript: void(0);">Детские коляски</a>
          <ul id="test2">
              <li><a href="test.php">test</a></li>
          </ul>
      </li>
      <li id="test3">
          <a href="javascript: void(0);">Детские коляски</a>
          <ul id="test4">
              <li><a href="test.php">test</a></li>
          </ul>
      </li>
</ul>

然后

<script>
    $(function(){
        $('.test > li').click(function(){
            var childUl = $(this).children('ul');
            // do what you want with childUl
        });
    });
</script>

答案 4 :(得分:0)

您似乎希望点击a中的li标记功能。

你需要至少定义一个类。(或者包括像div>ul>li>a这样的父元素)

$('ul.parent > li > a').click(function(){
   var obj = $(this).parent().children('ul');  //going back one step and selecting the child element
});

检查fiddle

如果您想要li本身的点击功能,那么请使用其他解决方案(或尝试更改我提供的上述解决方案)

我不确定是否建议这样做。