我正在尝试使用javascript或Jquery执行典型的“显示/隐藏”菜单。 我遇到的问题是字体真棒图标或引导程序似乎弄乱了.text()函数,因此有额外的间距,我的if语句将无法按预期工作。希望能够跨浏览器使用它。
$('#list-btn').click(function() {
var el = $('#list-btn')
console.log(el.text())
if (el.text() == el.text("Hide Instructions")) {
el.text("Show Instructions");
} else {
el.text("Hide Instructions");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet"/>
<li>
<a href="#" class="hidden-sm hidden-xs" data-toggle="tab" id="list-btn">
<i class="fa fa-fw fa-list white"></i> Hide Instructions</a>
</li>
答案 0 :(得分:1)
您需要更正比较。
if (el.text().trim() === "Hide Instructions"){
但是,我建议你将文字换成span
。它将阻止在执行<i>
操作时删除text()
元素。
$('#list-btn').click(function() {
var el = $('span', this)
console.log(el.text())
if (el.text().trim() == "Hide Instructions") {
el.text("Show Instructions");
} else {
el.text("Hide Instructions");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" />
<li>
<a href="#" class="hidden-sm hidden-xs" data-toggle="tab" id="list-btn">
<i class="fa fa-fw fa-list white"></i> <span>Hide Instructions</span></a>
</li>
答案 1 :(得分:0)
尝试
if (el.text().trim() === "Hide Instructions"){...}
答案 2 :(得分:0)
Jquery代码
<script>
$(document).ready(function(){
$('#list-btn').off().on('click',function() {
var el = $('#list-btn')
console.log(el)
if (el.text() == "Hide Instructions") {
el.text("Show Instructions");
} else {
el.text("Hide Instructions");
}
});
});
</script>