我有3个选择框, 一个用于国家,另一个用于城市,另一个用于城市半径。
我希望在发送并保存db中的所有数据之前,用户选择在div中显示的内容。
我正在尝试做这项工作,但我不知道为什么我会有奇怪的结果。 它什么也没做!但是如果我删除“!”它对第一个有用,但后来又重复了。 我不明白我做错了什么。 这是代码:
var citySet = new Array;
function appendCity(){
if(!$.inArray($("#businessCityTarget option:selected").text(),citySet)){
$("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>");
citySet.push($("#businessCityTarget option:selected").text());
}
}
任何光线都会肆无忌惮
答案 0 :(得分:0)
尝试:
if(citySet.indexOf($("#businessCityTarget option:selected").text()) < 0){
$("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>");
citySet.push($("#businessCityTarget option:selected").text());
}
答案 1 :(得分:0)
你可以试试这个:
var citySet = new Array;
function appendCity(){
if($.inArray($("#businessCityTarget option:selected").text(),citySet)===-1){
$("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>");
citySet.push($("#businessCityTarget option:selected").text());
}
}
希望这会有所帮助..
答案 2 :(得分:0)
您应该检查=== -1
或< 0
var citySet = new Array;
function appendCity() {
if ($.inArray($("#businessCityTarget option:selected").text(), citySet) === -1) {
$("#cityContainer").append($("#businessCityTarget option:selected").text() + "<br>");
citySet.push($("#businessCityTarget option:selected").text());
}
}
来自docs
$ .inArray()方法类似于JavaScript的原生.indexOf()方法,因为它在找不到匹配项时返回-1。如果数组中的第一个元素与value匹配,则$ .inArray()返回0.