javascript - 在 jQuery 中使用带有符号的 html() 方法

标签 javascript jquery html

我想创建一个更新列表,当您只看到更新的标题时 - 除非您单击标题附近的向下三 Angular 形,然后您将看到完整的更新信息 + 向下三 Angular 形将更改为向上的三 Angular 形。单击向上的三 Angular 形后,您将再次仅看到更新的标题+三 Angular 形将向下。

所以我编写了以下代码来实现它:

html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <script type="text/javascript" src="script.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>

<script>
    arrowsUpdate(); 
</script>


<p>
<span class="down-arrow">&#9660;</span> 
<br>
<span class="hidden-text">update 1</span>
</p>

<p>
<span class="down-arrow">&#9660;</span>
<br> 
<span class="hidden-text">update 2</span>
</p>


</body>
</html>  

JS:

function arrowsUpdate(){
    $(document).ready(function(){
        $(".down-arrow").each(function(){
            $(this).click(function(){
                $(this).siblings(".hidden-text").slideToggle(0,"linear"); 
                if($(this).html()=="&#9660;")
                    $(this).html("&#9650;");
                else
                    $(this).html("&#9660;");             
            });        
        }); 
    });
}  

这段代码的问题是指向的三 Angular 形总是向下的。好像if有问题语句 - 总是返回 false。
我不明白为什么会发生这种情况,特别是当设置的代码行( $(this).html("&#9650;");$(this).html("&#9660;"); )按预期工作时(尝试在不同的页面中使用这些代码行,并且它有效)。

为什么会出现这种情况 $(this).html()=="&#9660;"如果 this 的内容始终返回 false是 &#9660;

最佳答案

你可以用实体设置html,但是当你拿回来时,它不再是实体而是字符,这就是实体的工作原理。

更清楚地说,这条线每次都会失败

if( $(this).html()=="&#9660;" )

因为$(this).html()永远不会返回实体,而是字符,证明...

document.body.innerHTML = '&#9660;';
console.log( document.body.innerHTML )

在不依赖标记的情况下创建切换功能的更简单方法是仅使用标志

function arrowsUpdate() {
  $(".down-arrow").on('click', function() {
    $(this).siblings(".hidden-text").slideToggle(0, "linear");

    var flag = $(this).data('flag');

    $(this).html(flag ? "&#9660;" : "&#9650;").data('flag', !flag);
  });
}

关于javascript - 在 jQuery 中使用带有符号的 html() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39647987/

相关文章:

php - jQuery AJAX 数据类型 html 使用

javascript - 为什么 scroll-snap 在 CSS 中不起作用?

html - 为什么浏览器在 symfony 4 中保留旧代码?

javascript - jquery/html/css 使图像出现在不透明背景的中间

javascript - 页面重定向后保留表单值,使用 JavaScript 在新表单中显示这些值

javascript - 根据两个键(即 JavaScript 中的 from 和 to)从两个对象数组中查找唯一值

javascript - 如何防止固定位置 <ul> 覆盖链接从而阻止它们被点击?

javascript - ReactJs - 在不滞后网页的情况下复制组件

javascript - 如何在闭包中使用 'uncapture' 变量?

jquery - jwysiwyg Jquery