Javascript jQuery-切换文本
事实上,我有:Javascript jQuery-切换文本,javascript,jquery,Javascript,Jquery,事实上,我有: function switch() { if(document.getElementById('mydivid').innerHTML == "Show +") document.getElementById('mydivid').innerHTML = "Show -"; else if(document.getElementById('mydivid').innerHTML == "Show -") do
function switch()
{
if(document.getElementById('mydivid').innerHTML == "Show +")
document.getElementById('mydivid').innerHTML = "Show -";
else
if(document.getElementById('mydivid').innerHTML == "Show -")
document.getElementById('mydivid').innerHTML = "Show +";
}
但我希望用jQuery实现这一点。我有:
$(document).ready(function() {
$("#mydivid").click(function() {
// if #mydivid is "Show +" do: $("#mydivid").html("Show -");
// else if #mydiv is "Show -" do: $("#mydivid").html("Show +");
});
});
如果s,我如何使用这些s?或者我可以只对一个div元素使用toggler吗?您可以使用.text()
函数以文本形式获取div内容。试试下面的代码
PS:将.text
包装在$.trim()内
如果你的div有空白/换行符
,我想这应该行得通
$(document).ready(function() {
$("#mydivid").click(function() {
var that = $(this);
if(that.text() == 'Show +') that.text('Show -');
else that.text('Show +');
});
});
$(document).ready(function() {
$("#mydivid").click(function() {
if ($(this).text() === "Show +")
$(this).text("Show -");
else
$(this).text("Show +");
});
});
以下是一种仅通过现有文本实现的方法:
$(document).ready(function() {
$("#mydivid").click(function() {
$(this).text(function(i, old){
return "Show "+ ( /\+/.test( old) ) ? '-': '+';
})
});
});
我假设这是为了切换一个元素,在这种情况下切换一个类将是一个更好的解决方案,但不清楚完整的代码将做什么。
如果
,您实际上不需要;只需一个else
就可以了,但我认为如果元素的文本被另一个JS位修改,那么拥有显式行为是很好的+1用于在if()
s周围使用大括号。@JamWaffles为True,但OP原始代码中有它,因此我添加了else-if而不是else。这是真的-我没有很好地阅读OP。我并不是说在这种情况下显式是一件坏事,但是选项总是存在的,可以删除第二个if()
,只需要一个else
。
$(document).ready(function() {
$("#mydivid").click(function() {
$(this).text(function(i, old){
return "Show "+ ( /\+/.test( old) ) ? '-': '+';
})
});
});
$(document).ready(function() {
$("#mydivid").click(function() {
$(this).text(function(i,text) {
return text === 'Show +' ? 'Show -' : 'Show +';
});
});
});