项目单独显示

时间:2012-12-05 03:28:03

标签: javascript jquery

如何单独制作show(),点击show后,所有.whateverever班级都会被打开。

以下是代码:

$(document).ready(function() {
    function excerpt(text, len) {
        return text.substring(0, len) + "&hellip;" + '<span>Show</span>';
    }

    var $div = $('.container');
    $div.each(function() {
        var $p = $(this).find("p:first");
        var theExcerpt = excerpt($p.text(), 230);
        $p.data('html', $p.html()).html(theExcerpt);
    });

    $('span').click(function() {
        var isHidden = $(this).text() == 'Show';
        var $p = $(this).parent();
        var theExcerpt = excerpt($p.text(), 230);
        $p.html(isHidden ? $p.data('html') : theExcerpt);
        $('.whateverever').show();
        $(this).remove();
    });

});​

请在线查询示例:http://jsfiddle.net/M6wzh/6/ 非常感谢

4 个答案:

答案 0 :(得分:2)

尝试

$(document).ready(function() {
    function excerpt(text, len) {
        return text.substring(0, len) + "&hellip;" + '<span>Show</span>';
    }

    var $div = $('.container');
    $div.each(function() {
        var $p = $(this).find("p:first");
        var theExcerpt = excerpt($p.text(), 230);
        $p.data('html', $p.html()).html(theExcerpt);
    });

    $('span').click(function() {
        var isHidden = $(this).text() == 'Show';
        var $p = $(this).parent();
        var theExcerpt = excerpt($p.text(), 230);
        $p.html(isHidden ? $p.data('html') : theExcerpt);
        $p.next().show();//the div you're looking for is the next sibling of the parent p
        $(this).remove();
    });

});​

http://jsfiddle.net/mowglisanu/M6wzh/7/

答案 1 :(得分:1)

$('.whateverever', this).show();

而不是

$('.whateverever').show();

应该让你上路。

答案 2 :(得分:0)

你可以这样做:

$('span').click(function() {
    var isHidden = $(this).text() == 'Show';
    var $p = $(this).parent();
    var theExcerpt = excerpt($p.text(), 230);
    $p.html(isHidden ? $p.data('html') : theExcerpt);
    $(this).next(".whateverever").show();
    $(this).remove();
});

Fiddle

答案 3 :(得分:0)

在此之前你使用jquery的.closet()。 只需对代码进行少量编辑

   $('.whateverever').show();
replace this line by        
   $.closest('.whateverever').show();
  and check.