我构造了一个数组,我稍后会用它来比较一些值。 我使用这段代码来构造“myArray”,我将在稍后使用它:
var optionTexts = [];
$('#stripeMeSubSubCat tr').each(function(){
if ($(this).find('input:checkbox.subsubcat_chkclass:not(:checked)').length == 0)
{
subsubrow_cat_id_no = parseInt($(this).closest("tr").attr("id"));
optionTexts.push(subsubrow_cat_id_no);
};
});
var myArray = optionTexts.join(', ');
alert("myArray = "+myArray);
这里我使用myArray进行比较:
$('#stripeMeSubSubCat tr').each(function(){
myindex = $.trim($(this).closest("tr").attr("id"));
var arr = [myArray];
//var arr = [0, 439, 52, 53];
myindex = parseInt(myindex);
alert(myindex);
alert(arr);
if ((jQuery.inArray(myindex, arr)) == -1) {
var equal = "FALSE";
} else {
var equal = "TRUE";
$("#stripeMeSubSubCat tr[id='" + myindex + "'] input").attr('checked', true);
};
alert(equal);
});
与上面的代码一样,它总是返回FALSE。 但是,如果不使用第一块代码并且只启用注释掉的var arr(我将数组设置为固定数据),则返回TRUE。
有什么想法吗?
答案 0 :(得分:1)
myArray是一个字符串变量,它是通过连接optionsText数组的元素而不是一组元素创建的。你应该检查optionsText而不是myArray。
if ((jQuery.inArray(myindex, optionsText)) == -1) {
顺便说一句,为什么要将变量equal
设置为字符串“FALSE”或“TRUE” - 为什么不简单地将其设置为false
或true
(布尔值) ?
答案 1 :(得分:0)
myArray
是一个字符串,是
var myArray = optionTexts.join(', ');
稍后,您尝试将其更改为包含以下内容的数组:
var arr = [myArray];
实际上会创建一个数组,其中myArray
字符串作为第一个也是唯一的元素。请改用split(", ")
:
var arr = myArray.split(", ");