[英]jQuery inArray function not grabbing value on change select
我試圖顯示一個元素,如果在選擇中選擇了特定值:
$(function () {
$("#add_category3").change(function() {
var id = $(this).val();
if (jQuery.inArray(id, vehicles) !== -1)
$("#vehicle-fields").show();
else
$("#vehicle-fields").hide();
console.log(id);
});
});
如果我在inArray()函數中更改實際值的變量id (對值進行硬核),則效果很好,但是當我使用變量id時卻無效。
console.log(id)會返回使que元素顯示出來的實際值,所以我不知道為什么它不起作用。
聽起來您在遇到類型問題。 您必須記住,inArray是類型敏感的。 因此,您的val()以字符串形式(最有可能通過)通過,但該數組具有int數組,則inArray總是會返回-1。 將this.val()調用轉換為int
parseInt($(this).val(), 10);
function inArray(arrays,id){
var inarray = false;
for (var i = 0, l = arrays.length; i < l; i++) {
if (arrays[i] == id) {
inarray = true;
break;
}
}
return inarray;
}
使用您自己的自定義inArray。 因為inarray不會將字符串值與整數進行比較。
$(function () {
$("#add_category3").change(function() {
var id = $(this).val();
if (inArray(vehicles,id))
$("#vehicle-fields").show();
else
$("#vehicle-fields").hide();
console.log(id);
});
});
嘗試使用trim(id),可能有一些白色間距
由於您在if條件中使用!==,因此無法使用。 在條件中嘗試!=,它將起作用。 使用下面的代碼,我改進了您的代碼。
$(function () {
$("#add_category3").change(function() {
var id = $(this).val();
if (jQuery.inArray(id, vehicles) != -1)
$("#vehicle-fields").show();
else
$("#vehicle-fields").hide();
console.log(id);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.