在文本块中,如果出现“###”,我想用图像替换它,之后的所有内容都应在单击时隐藏,一切都会淡入,添加另一个图像,阅读更多图像被隐藏并单击无读图像, text slidesup 和 readmoreimage 再次可见。
这是一个例子:http: //jsfiddle.net/TkPt6/7/
并且只有一个元素可以正常工作,但是应该可以将###添加到多个元素,但是有一个问题:
如何应用它只影响应该受影响的元素?
顺便说一句,如何编写更好的代码?
那是我的js代码:
$('div.ce_text p').each(function() {
if($(this).text().indexOf("###") > -1) {
var readmore = '<p class="more">more</p>';
var readmoreselector = 'p.more';
var readless = '<p class="less">less</p>'
var readlessselector = 'p.less';
$(this).nextAll().wrapAll('<div class="more_content">');
$(this).replaceWith(readmore);
var hiddentext = $('div.more_content');
$(hiddentext).append(readless);
$(readmoreselector).click(function(){
$(hiddentext).slideDown('slow');
$(readmoreselector).css('display','none');
})
$(readlessselector).click(function(){
$(hiddentext).slideUp('slow');
$(readmoreselector).css('display','block');
})
}
})