我正在尝试根据状态更改“显示更多”文本。这不起作用:
<div id="description">
text goes here
</div>
<div id="more-less-container">
<a href="#" id="more-less">expand / collapse</a>
</div>
<script>
var open = false;
$('#more-less').click(function() {
if (open) {
$('#description').animate({height:'10em'});
$('#more-less').innerHTML ='show less';
}
else {
$('#description').animate({height:'100%'});
$('#more-less').innerHTML ='show more';
}
open = !open;
});
</script>
答案 0 :(得分:5)
使用$('#more-less').text('show more');
代替innerHTML。
jQuery将DOM Elements包装到jQuery对象中,如果你想使用innerHTML
属性,你可以使用.html()
函数 - 但是.text()
更好,因为它会html-逃避内容。
真正访问innerHTML
属性的另一种方法是将DOM元素从jQuery对象中取出,如下所示:$('#more-less')[0].innerHTML = 'show more';
。
答案 1 :(得分:2)
我相信你可以使用像
这样的东西$('#more-less').html("show more");
或
$('#more-less').html("show less");
答案 2 :(得分:2)
而不是:
$('#more-less').innerHTML ='show less';
说:
$('#more-less').html('show less');
答案 3 :(得分:0)
innerHTML是一个DOM函数,对于jQuery使用.html(),因为你正在操作一个jQuery对象
$('#more-less').html('show less');