尝试在一页中打印HTML时遇到一些问题。 我有一个substr来显示文本的前X个字符,还有一个按钮来显示更多。我的问题是,如果我使用html_decode或html_entity_decode以HTML格式打印(不仅是html),它将中断页面并显示所有文本,而不是前X个字符和“显示更多”按钮。
PHP:
$item->description = html_decode($item->description);
if( strlen( $item->description ) > 70 ) {
$item->description = substr($item->description, 0, 50 ) .
'<span class="more-link">... <a href="#"><i class="fa fa-caret-down"></i> ' . t( 'theme_more', 'More' ) . '</a></span>' .
'<span class="hidden-part">' . substr( $item->description, 50 ) . '</span>' .
'<span class="less-link"><a href="#"><i class="fa fa-caret-up"></i> ' . t( 'theme_less', 'Less' ) . '</a></span>';
}
JS代码:
$( '.description .more-link a, .description .less-link a' ).on( 'click', function(e) {
e.preventDefault();
var desc = $(this).parents( '.description' );
var part = desc.find( '.hidden-part' ),
more = desc.find( '.more-link' ),
less = desc.find( '.less-link' );
if( part.is( ':visible' ) ) {
part.hide();
more.show();
less.hide();
} else {
part.show();
more.hide();
less.show();
}
});
如果我只是为了调试而将html_decode更改为strip_tags,它会按预期工作,但会将HTML字符打印为纯文本(显示第一个X字符,然后在“显示更多”按钮中,显示其余文本)。 使用html解码,基本上可以显示所有文本,并在文本中间创建按钮。
我的问题不是HTML标记被substr剪掉。
有人可以帮我吗? 谢谢