当您仅看到更新的标题时,我想创建一个更新列表 - 除非您在标题附近点击一个向下指向的标签,然后您将看到完整更新信息+指向下陷的traingle将变成指向特定的traingle。在点击指向的Traingle后,你将只能看到更新的标题+三角形将向下指向。在jQuery中使用带有符号的html()方法
所以我写了下面的代码,以实现一个:
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">▼</span>
<br>
<span class="hidden-text">update 1</span>
</p>
<p>
<span class="down-arrow">▼</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()=="▼")
$(this).html("▲");
else
$(this).html("▼");
});
});
});
}
这段代码的问题是指向三角形八方通向下的。看起来if
声明有问题,它总是返回false。
我不明白为什么会发生这种情况,特别是当设置的代码行($(this).html("▲");
和$(this).html("▼");
)按预期工作时(尝试在不同的页面中使用这些代码行并且它可行)。
为什么条件$(this).html()=="▼"
返回allways false,如果this
的内容是▼
?
@Jonathan如果它总是返回false,从'=='更改为'==='不会有帮助。 '==='是更多**歧视,而不是更少。 – Barmar