切换函数Jquery

时间:2014-01-11 01:48:36

标签: php jquery html css ajax

我想将显示/隐藏值切换到我的按钮,尝试了很多但没有任何效果。这是我的意思。提前致谢。

function SLIDE_HIDE(SLIDEID){
    $("#"+SLIDEID).prop('value', 'HIDE');
    $("#"+SLIDEID).prop('value', 'SHOW');
}

HTML / PHP代码

<input id=\"$OPID\" onclick='SLIDE_HIDE($OPID);' class=\"slidehide\" type=\"button\" value=\"HIDE\" > 

3 个答案:

答案 0 :(得分:0)

如果您要求的是如何使用您提供的代码来回切换,那么请执行以下操作:

function SLIDE_HIDE(SLIDEID)
{
    if ($('#' + SLIDEID).prop('value').toUpperCase() == "SHOW") {
        $("#"+SLIDEID).prop('value', 'HIDE');
    } else {
        $("#"+SLIDEID).prop('value', 'SHOW');
    }
}

如果你正在寻找一种方法,因为.prop实际上并没有设置按钮值:

你尝试过.attr或.val吗?

不确定问题想要做什么,但下面的任何一个都可行。此外,这可能是显而易见的,但您不能像在示例中那样背对背地运行两条线,否则它将始终以“显示”结束。

$("#"+SLIDEID).attr('value','show');
// or
$("#"+SLIDEID).val('show');

当然

$("#"+SLIDEID).attr('value','hide');
// or
$("#"+SLIDEID).val('hide');

答案 1 :(得分:0)

试试这个:

$("#"+SLIDEID).val(function(i,oldVal) {
    return oldVal === "HIDE" ? "SHOW" : "HIDE";
});

演示:http://jsfiddle.net/Q5SBj/2/

请注意,如果您的PHP变量$OPID是一个字符串,那么在传递它时需要将它放在引号中,如下所示:onclick='SLIDE_HIDE(\"$OPID\");'

.val() method接受一个函数作为参数,其中jQuery将调用该函数传递元素的旧值,然后将值设置为从函数返回的任何值。

请注意,如果您的元素可以由类"slidehide"选择,则可以删除内联onclick="..."属性,并使用jQuery分配处理程序:

$(document).ready(function() {
    $(".slidehide").click(function() {
        $(this).val(function(i,oldVal) {
           return oldVal === "HIDE" ? "SHOW" : "HIDE";
        });
    });
});

演示:http://jsfiddle.net/Q5SBj/

(如果在主体末尾包含脚本,则不需要文档就绪包装器。)

答案 2 :(得分:0)

您的功能不会检查旧值。尝试在函数中运行if / else语句来检查当前值并将其设置为相反的值。示例:如果其值为“HIDE”,则将其设置为“SHOW”。如果它的值为“SHOW”,则将其设置为“HIDE”。