Javascript JQuery在选择更改时淡入淡出隐藏字段
我目前有一个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(); } }); 这是一把小提琴: 它会使磁场减弱,但不会因为某种原因而减弱。有什么想法吗 谢谢
$('#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语句实际上并不必要。我还纠正了文本的用法
第一件事成功了。真不敢相信我居然漏掉了括号!在编码过程中,始终是一些小事情:第一件事起作用。真不敢相信我居然漏掉了括号!在编码过程中,始终是一些小事情: