当点击li时,jquery隐藏或显示ul的动态li

时间:2014-09-15 06:33:50

标签: php jquery

在php while循环中,我得到了这种类型的数据,当我点击li时,id =" test1"然后隐藏那个id =" test1"并显示li其中id =" new_test1" 我想要特别的ul意味着我点击" li"然后对存在该li的特定ul进行处理。

<ul id="cpvote">
<li id="test1">Message 1</span></li>
<li id="test2">Message 2</li>
<li id="test3">Message 3</li>
<li id="new_test1" style="display:none">Message 4</li>
<li id="new_test2" style="display:none">Message 5</li>
</ul>

<ul id="cpvote">
<li id="test1">Message 1</span></li>
<li id="test2">Message 2</li>
<li id="test3">Message 3</li>
<li id="new_test1" style="display:none">Message 4</li>
<li id="new_test2" style="display:none">Message 5</li>
</ul>

<ul id="cpvote">
<li id="test1">Message 1</span></li>
<li id="test2">Message 2</li>
<li id="test3">Message 3</li>

<li id="new_test1" style="display:none">Message 4</li>
<li id="new_test2" style="display:none">Message 5</li>
</ul>

2 个答案:

答案 0 :(得分:1)

ID必须是唯一的。但是您可以多次使用类。

使用class selector。以下只是使用类选择器

实现所需结果的示例

HTML

<ul class="cpvote">
    <li class="test1">Message 1</li>
    <li class="new_test1" style="display:none">Message 4</li>
</ul>
<ul class="cpvote">
    <li class="test1">Message 1</li>
    <li class="new_test1" style="display:none">Message 4</li>
</ul>
<ul class="cpvote">
    <li class="test1">Message 1</li>
    <li class="new_test1" style="display:none">Message 4</li>
</ul>

脚本

$(document).ready(function () {
    $(document).on('click', '.cpvote .test1', function () {
        $(this).closest('.cpvote').find('.new_test1').toggle();
    });
});

DEMO

答案 1 :(得分:0)

尝试这样做。

使用Jquery制作UL Unique Identified

$( document ).ready(function() {

    // putting extra unique attributes in UL to Identified.

    $("UL").each(function(i){
        $("UL").eq(i).attr('ul-id','ul-'+i);    
    });

    $("UL").each(function(i){
        $("UL[ul-id='ul-"+i+"']").find("LI").on("click",function(){
           $("UL[ul-id='ul-"+i+"']").find("#new_"+$(this).attr('id')).show();
        });
    });
});

DEMO:http://jsfiddle.net