使用jQuery切换Button的标签

时间:2012-10-08 01:57:02

标签: jquery

我正在尝试使用jQuery在每次点击时切换按钮的标签。

以下是我实施的代码:

<html>
<head>
    <script src="jquery-1.8.2.js"></script>
    <script>
        $(document).ready(function(){

            $("#details_button").click(function() {
                var button_text = $("#details_button").attr("text");
                button_text == "Hide" ? $("#details_button").text("Details") : $("#details_button").text("Hide");
            });

        });
    </script>
</head>
<body>
    <button id="details_button" type="button">Details</button>
</body>
</html>

我希望“details_button”中的标签每次点击都会更改,从“详细信息”更改为“隐藏”,反之亦然。

但它只会更改一次,从“详细信息”更改为“隐藏”,然后在以后的点击中不会更改。

我在这里缺少什么?

5 个答案:

答案 0 :(得分:3)

试试这个:http://jsfiddle.net/rsnSx/ http://jsfiddle.net/z7mrs/ http://jsfiddle.net/dNzrq/

使用的API:

.html() - http://api.jquery.com/html/

.on - http://api.jquery.com/on/

希望它适合原因:)

<强>码

    $(document).on('click','#details_button',function() {

        var button_text = $(this).html();
        button_text == "Hide" ? $(this).text("Details") : $(this).text("Hide");;
    });

答案 1 :(得分:1)

这应该有效

 $("#details_button").html() == "Hide" ? $("#details_button").html("Details") : $("#details_button").html("Hide");;

答案 2 :(得分:1)

这对我有用:

$(document).ready(function() {
    $("#details_button").click(function(e) {
        var self = $(this); //cache object
        self.text(function () {
            var text = self.text();
            return text === 'Hide' ? 'Details' : 'Hide';
        });
        e.preventDefault();
        return false;
    });
});​​

工作小提琴:http://jsfiddle.net/TDr3Q/

这也可以缩短为:

$(document).ready(function() {
    $("#details_button").click(function(e) {
        $(this).text(function () {
            return $(this).text() === 'Hide' ? 'Details' : 'Hide';
        });
        e.preventDefault();
        return false;
    });
});​

工作小提琴:http://jsfiddle.net/TDr3Q/1/

答案 3 :(得分:1)

$("#details_button").attr("text");更改为$("#details_button").text();

答案 4 :(得分:1)

只需更改以下行:

var button_text = $("#details_button").attr("text");

到:

var button_text = $("#details_button").html();