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 +';
        });            
    });
});