jquery同一个类名点击功能

时间:2015-07-16 19:34:51

标签: jquery html

每当我点击评论链接时,所有的div都会打开,但我只需要打开它。

HTML:

<div>
    <a href="#" class="ck">comment</a>
    <div class="cmt">
        <input type="text" class="txt"/>
        <input type="button" value="submit"/>
    </div></div>
<div>
    <a href="#" class="ck">comment</a>
    <div class="cmt">
        <input type="text" class="txt">
            <input type="button" value="submit">
            </div></div>
        <div>
            <a href="#" class="ck">comment</a>
            <div class="cmt">
                <input type="text" class="txt"/>
                <input type="button" value="submit"/>
            </div></div>
        <div>
            <a href="#" class="ck">comment</a>
            <div class="cmt">
                <input type="text" class="txt"/>
                <input type="button" value="submit"/>
            </div></div>

jQuery的:

$(document).ready(function(){
    $(".cmt").hide();
    $(".ck").click(function(){
        $(".cmt").show();
    });
});

jsfiddle:http://jsfiddle.net/48gfje0f/

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery nextAll(),然后筛选第一个匹配元素:

&#13;
&#13;
$(".cmt").hide();
$(".ck").click(function(){
    $(this).nextAll(".cmt:first").show();
});
&#13;
&#13;
&#13;

演示:http://jsfiddle.net/48gfje0f/3/

此外,您可以使用toggle(),而不是使用show(),这会在您点击链接时显示和隐藏相关的div

答案 1 :(得分:0)

您需要使用this来&#34;找到&#34;必要的元素。在这种情况下$(this).next(),因为.cmt.ck的相邻兄弟。就像:

$(".ck").click(function(){
    $(this).next().show();
});

DEMO