什么';这个jQuery函数有什么问题?
有人能解释一下为什么这个函数不起作用吗什么';这个jQuery函数有什么问题?,jquery,jquery-mobile,Jquery,Jquery Mobile,有人能解释一下为什么这个函数不起作用吗 <form id="spot-search"> <label for="text-basic">Postcode</label> <input type="text" name="postcode" id="postcode" value=""> </br> <label for="slider">within mile radius</label
<form id="spot-search">
<label for="text-basic">Postcode</label>
<input type="text" name="postcode" id="postcode" value="">
</br>
<label for="slider">within mile radius</label>
<input type="range" name="radius" id="radius" value="50" min="0" max="200">
</br>
<label>Select spot type</label>
<a href="#spot-type" data-role="button">All</a>
</br>
<input type="submit" value="Search">
</form>
<div id="map1">
map 1 goes here
</div>
<div id="map2">
map 2 goes here
</div>
<div id="map3">
map 3 goes here
</div>
<div id="map4">
map 4 goes here
</div>
<div id="map5">
map 5 goes here
</div>
邮政编码
方圆英里以内
选择点类型
地图1在这里
地图2在这里
地图3在这里
地图4在这里
地图5在这里
提交时应运行此功能:
$('#spot-search').submit(function(e) {
var radius = getElementById('#radius');
if ($radius<=40) {
$('#spot-search').hide();
$('#map1').show();
} elseif($radius>40 && $radius<=80) {
$('#spot-search').hide();
$('#map2').show();
} elseif($radius>80 && $radius<=120) {
$('#spot-search').hide();
$('#map3').show();
} elseif($radius>120 && $radius<=160) {
$('#spot-search').hide();
$('#map4').show();
} elseif($radius>160 && $radius<=200) {
$('#spot-search').hide();
$('#map5').show();
}
e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=getElementById(“#radius”);
如果($radius40&&$radius80&&$radius120&&$radius160&&$radius语法错误1
elseif($radius>40 && $radius<=80) {
//--^
而不是
var radius = getElementById('#radius');
如果需要,请在其他之间添加空格
$('#spot-search').submit(function (e) {
var radius = $('#radius').val();
if ($radius <= 40) {
$('#spot-search').hide();
$('#map1').show();
} else if ($radius > 40 && $radius <= 80) {
$('#spot-search').hide();
$('#map2').show();
} else if ($radius > 80 && $radius <= 120) {
$('#spot-search').hide();
$('#map3').show();
} else if ($radius > 120 && $radius <= 160) {
$('#spot-search').hide();
$('#map4').show();
} else if ($radius > 160 && $radius <= 200) {
$('#spot-search').hide();
$('#map5').show();
}
e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=$('#radius').val();
如果($radius 40&&$radius 80&&$radius 120&&$radius 160&&$radius这一行有问题var radius=getElementById('#radius');
应该是
$('#spot-search').submit(function (e) {
var radius = parseInt($('#radius').val());
if (radius <= 40) {
$('#spot-search').hide();
$('#map1').show();
} else if (radius > 40 && radius <= 80) {
$('#spot-search').hide();
$('#map2').show();
} else if (radius > 80 && radius <= 120) {
$('#spot-search').hide();
$('#map3').show();
} else if (radius > 120 && radius <= 160) {
$('#spot-search').hide();
$('#map4').show();
} else if (radius > 160 && radius <= 200) {
$('#spot-search').hide();
$('#map5').show();
}
e.preventDefault();
}
$(“#现场搜索”).submit(函数(e){
var radius=parseInt($('#radius').val();
如果(半径40&&radius 80&&radius 120&&radius 160&&radius您的变量名是radius
,但您正在引用$radius
尝试:
另外,如果您没有关闭submit()函数,而elseif想要更好的语法,那么它就是else
$('#spot-search').submit(function (e) {
var radius = $('#radius').val();
if (radius <= 40) {
$('#spot-search').hide();
$('#map1').show();
} else if ((radius > 40) && (radius <= 80)) {
$('#spot-search').hide();
$('#map2').show();
} else if ((radius > 80) && (radius <= 120)) {
$('#spot-search').hide();
$('#map3').show();
} else if ((radius > 120) && (radius <= 160)) {
$('#spot-search').hide();
$('#map4').show();
} else if ((radius > 160) && (radius <= 200)) {
$('#spot-search').hide();
$('#map5').show();
}
e.preventDefault();
});
$(“#现场搜索”).submit(函数(e){
var radius=$('#radius').val();
如果(radius 40)&(radius 80)&(radius 120)&(radius 160)&(radius这里的各种答案都集中在问题的不同方面(潜伏者:请向上投票那些有帮助的人),那么我将在社区答案中总结它们:
如果
(注意空格),则为else,而不是elseif
您已经使用了变量名radius
,但是在引用它时,您使用了$radius
。如果没有问题,请选择一个并保持一致。我将使用radius
使用$(“#radius”)
代替getElementById(“#radius”)
(第一个版本有两个不同的问题:1.getElementById
是文档的属性,而不是全局属性。2.您不使用选择器,只使用ID。)
您使用的radius
就像它是一个数字一样,但它是一个对象(如果使用getElementById
,它是DOM元素;如果使用$()
,它是一个jQuery对象)。因此,您可能需要.val()
这里也有。虽然当您执行radius<40
之类的操作时,JavaScript会将字符串转换为数字,但通常最好显式解析它。因此:
var radius = parseInt($("#radius").val(), 10); // 10 = base 10
您尚未关闭对submit
的调用,您需要在代码中最后一个}
之后添加一个);
另外,如果您正在使用或者if
,则不需要后续条件的初始半径>=XX&
部分。尝试document.getElementById
。您可以定义radius
,但使用$radius
未定义。var radius=getElementById('\radius'));如果您这样使用它,请删除散列标记var radius=getElementById('radius');但是如果您使用jQuery为什么不使用var radius=$('#radius');?三个答案,都是正确的,都是不同的,都是不完整的——因为有(至少)该代码中有三个不同的错误。下次使用浏览器的控制台查看发生了什么。可能会出现一些错误。旁注:如果您使用的是,否则如果,则没有理由出现($radius>xx&&
以下情况的一部分。。。
$('#spot-search').submit(function (e) {
var radius = $('#radius').val();
if (radius <= 40) {
$('#spot-search').hide();
$('#map1').show();
} else if ((radius > 40) && (radius <= 80)) {
$('#spot-search').hide();
$('#map2').show();
} else if ((radius > 80) && (radius <= 120)) {
$('#spot-search').hide();
$('#map3').show();
} else if ((radius > 120) && (radius <= 160)) {
$('#spot-search').hide();
$('#map4').show();
} else if ((radius > 160) && (radius <= 200)) {
$('#spot-search').hide();
$('#map5').show();
}
e.preventDefault();
});
var radius = parseInt($("#radius").val(), 10); // 10 = base 10