2012-12-05 2 views
0

텍스트 길이 제한, 클릭 후 전체 내용 표시. 그러나 누군가 코드를 검사 할 수 있다면 첫 번째 P 태그는 잘 열리지 만 두 번째 태그에서는 완전히 열리지 않습니다.발췌 텍스트 P 태그 미해결 문제

$(document).ready(function(){ 
function excerpt(text, len) { 
    return text.substring(0, len)+"…"; 
} 

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().find("p:first"); 
    var theExcerpt = excerpt($p.text(), 230); 
    $p.html(isHidden ? $p.data('html') : theExcerpt); 
    $(this).remove(); 
}); 

});​ 

온라인 샘플 here.

내가 return text.substring(0, len)+"&hellip;" + <span>show</span>; http://jsfiddle.net/M6wzh/3/

많은 감사가있는 경우.

답변

1

HTML을 변경하면 문제를 해결할 수 있습니다. <span>Show</span>은 '컨테이너'div 안에 있어야합니다.

http://jsfiddle.net/M6wzh/1/은 (JQuery와 코드 <span>Show</span>들 중에 용기 소자 내부 없었다 때문에 단순히 페이지의 첫 번째 항을 발견하고 그 확대. <span>Show</span> 동일한 부모 요소에서 제 단락을 발견하고 그것을 확장한다.)

+0

답장과 설명에 감사드립니다. JS에서이 스팬을 'return text.substring (0, len) + "& hellip; + ' 표시'; '작동시킬 수있는 방법이 있습니까? – olo

+0

단락이 이제 스팬의 부모 요소이기 때문에'$ (this) .parent(). find ("p : first")'를'$ (this) .parent()'로 변경하면됩니다. http://jsfiddle.net/M6wzh/4/ – Stuart

+0

많은 감사 스튜어트 – olo