Javascript JQuery在选择更改时淡入淡出隐藏字段

Javascript JQuery在选择更改时淡入淡出隐藏字段,javascript,jquery,html,Javascript,Jquery,Html,我目前有一个jquery代码,它应该根据所选内容显示和隐藏一个字段: $('#State').on('change', function() { var s = $('#State option:selected').text; if(s !== "") { $('#showme').fadeIn(); } if(s === "") { $('#showme').fadeOut(); } }); 这是一把小提琴: 它会使磁场减弱,但不会因为某种原因而减弱。有什么想法吗 谢谢

我目前有一个jquery代码,它应该根据所选内容显示和隐藏一个字段:

$('#State').on('change', function() {
var s = $('#State option:selected').text;

if(s !== "")
{
    $('#showme').fadeIn();
}
if(s === "")
{
    $('#showme').fadeOut();
}

});
这是一把小提琴:

它会使磁场减弱,但不会因为某种原因而减弱。有什么想法吗

谢谢

尝试以下操作:

var s = $('#State option:selected').text();
$('#State').on('change', function() {
    var s = $('#State option:selected').text();

    if(s) { // If it's true
        $('#showme').fadeIn();
    }
    else { // If it's false
        $('#showme').fadeOut();
    }
});
请尝试以下操作:

var s = $('#State option:selected').text();
$('#State').on('change', function() {
    var s = $('#State option:selected').text();

    if(s) { // If it's true
        $('#showme').fadeIn();
    }
    else { // If it's false
        $('#showme').fadeOut();
    }
});
在jQuery中,文本是方法。方法为了工作,需要使用括号,如下所示:

var s = $('#State option:selected').text(); // I added: ()
注意:在JavaScript中,空字符串被视为false。因此,为了保持整洁,您可以将代码转换为以下内容:

var s = $('#State option:selected').text();
$('#State').on('change', function() {
    var s = $('#State option:selected').text();

    if(s) { // If it's true
        $('#showme').fadeIn();
    }
    else { // If it's false
        $('#showme').fadeOut();
    }
});
查看您的小提琴的更新版本

另一种选择是,正如另一个答案也正确指出的那样,您可以使用:

$('#showme').fadeOut(500, function() {
    $(this).text(s).fadeIn(500);
});
将s放入文本中还可以检查其状态,因为根据s is:

要设置为每个匹配元素的内容的文本。当提供数字或布尔值时,它将转换为字符串表示形式

在您的情况下,正如我上面指出的,空字符串被认为是false,因此它满足了要求

注意:在这种情况下,$'showme'无论如何都会淡出,但如果该值为true而不是空,它将淡入。我不确定您是否真的想要那个特殊的效果,所以也来看看。

在jQuery中,文本就是方法。方法为了工作,需要使用括号,如下所示:

var s = $('#State option:selected').text(); // I added: ()
注意:在JavaScript中,空字符串被视为false。因此,为了保持整洁,您可以将代码转换为以下内容:

var s = $('#State option:selected').text();
$('#State').on('change', function() {
    var s = $('#State option:selected').text();

    if(s) { // If it's true
        $('#showme').fadeIn();
    }
    else { // If it's false
        $('#showme').fadeOut();
    }
});
查看您的小提琴的更新版本

另一种选择是,正如另一个答案也正确指出的那样,您可以使用:

$('#showme').fadeOut(500, function() {
    $(this).text(s).fadeIn(500);
});
将s放入文本中还可以检查其状态,因为根据s is:

要设置为每个匹配元素的内容的文本。当提供数字或布尔值时,它将转换为字符串表示形式

在您的情况下,正如我上面指出的,空字符串被认为是false,因此它满足了要求


注意:在这种情况下,$'showme'无论如何都会淡出,但如果该值为true而不是空,它将淡入。我不确定您是否真的想要这种特殊效果,所以也来看看。

将淡入设置为淡出的功能,这允许文本淡出、更改,然后淡入。if语句实际上并不必要。我还纠正了文本的用法


将淡入设置为淡出的功能,这允许文本淡出、更改,然后淡入。if语句实际上并不必要。我还纠正了文本的用法


第一件事成功了。真不敢相信我居然漏掉了括号!在编码过程中,始终是一些小事情:第一件事起作用。真不敢相信我居然漏掉了括号!在编码过程中,始终是一些小事情: