javascript - 如何通过 jQuery 更改文本?

标签 javascript jquery html css

我正在尝试根据状态更改“显示更多”文本。这不起作用:

        <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>

最佳答案

使用 $('#more-less').text('show more'); 而不是 innerHTML。

jQuery 将 DOM 元素包装到 jQuery 对象中,如果您想使用 innerHTML 属性,您可以使用 .html() 函数代替 - 但是 .text() 更好,因为它会对内容进行 html 转义。

要真正访问 innerHTML 属性,另一种方法是从 jQuery 对象中获取 DOM 元素,例如:$('#more-less')[0]。 innerHTML = '显示更多';.

关于javascript - 如何通过 jQuery 更改文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566530/

相关文章:

html - 为什么我的导航栏不允许我单击链接,直到它到达某个元素?

javascript - 如何使用 LinkedIn Javascript API 获取电子邮件地址字段?

javascript - 如何让在页面上下文中运行的 JavaScript 函数调用 puppeteer 函数?

html - 左浮动侧边栏 css- 使用 jquery 进行滚动事件

具有编程样式的 Javascript 可编辑区域

javascript - 如何从 indexeddb 中检索数据并显示在 div 中

javascript - 是否可以像javascript一样将JQuery集成到浏览器中?

javascript - 使用 RowCommand 事件在 GridView 上编辑单击弹出 Bootstrap 模型

javascript - 查找是否在父 div 中选中了所有复选框

javascript - 选择带有嵌套 foreach 选项的元素在 KnockoutJS 中不起作用