使用Jquery </li> </ul>处理<ul>和<li>

时间:2011-06-15 13:38:59

标签: jquery html

<li class="active">Menu1
    <ul id="first" value="">
        <li value="10">Whatever</li>
        <li value="15">Whatever</li>
        <li value="20">Whatever</li>
    </ul>
</li>
<li>Menu2
    <ul id="second" value="">
        <li value="30">Whatever</li>
        <li value="35">Whatever</li>
        <li value="40">Whatever</li>
    </ul>
</li>

好的那就是HTML,所以现在让我看看我是否可以描述我想要的行为。

每个<li> value都可以点击。单击li后,我希望它将父<ul>(最初为空value}设置为value <li>的任何内容被点击了。基本上尝试并模仿select框的行为,因为无论如何CSS都是这些元素的样式。

5 个答案:

答案 0 :(得分:2)

这应该有效:

$('li > ul > li').click(function(){
  $(this).parent().attr('value',$(this).attr('value'));
});

我们在所有内部li元素上设置了一个click事件,然后,当单击时,我们设置一个父元素的属性“value”,其中“click”元素的值为

答案 1 :(得分:1)

$('ul > li').click(function() {
    $(this).parent().attr('value',$(this).attr('value'));
});

答案 2 :(得分:1)

value不是UL的有效属性,已从LI弃用。话虽如此,这里是如何处理LI的点击事件并获得父UL:

$('li').click(function() {
  var clickedLI = $(this);
  var parentUL = $(this).parent();
});

答案 3 :(得分:0)

in handler:

$(this).parent().attr("value", $(this).attr("value"))

答案 4 :(得分:0)

试试这个:

$('ul > li[value]').click(function () {
    $(this).closest('ul').attr('value', this.value);
});

http://jsfiddle.net/mDmsW/3/