jQuery.inArray()是否始终为真?
我尝试使用inarray,但它总是返回真值?有什么想法吗?(所有李的作品都在展出) 您需要这样做:jQuery.inArray()是否始终为真?,jquery,arrays,Jquery,Arrays,我尝试使用inarray,但它总是返回真值?有什么想法吗?(所有李的作品都在展出) 您需要这样做: if( $.inArray('Aqua', arrVals) > -1 ) { 或者这个: if( $.inArray('Aqua', arrVals) !== -1 ) { 返回项目的基于0的索引。如果没有项目,则返回 -1 ,其中 IF-(语句将被视为 Trase< /Cord> 从文档中: 因为JavaScript将0粗略地视为等于false(即0==false,但0!==fals
if( $.inArray('Aqua', arrVals) > -1 ) {
或者这个:
if( $.inArray('Aqua', arrVals) !== -1 ) {
返回项目的基于0
的索引。如果没有项目,则返回<代码> -1 ,其中<代码> IF-(<)/代码>语句将被视为<代码> Trase< /Cord>
从文档中:
因为JavaScript将0粗略地视为等于false(即0==false,但0!==false),如果我们要检查数组中是否存在值,我们需要检查它是否不等于(或大于)-1
编辑:不要将两个值都作为对象推入数组,只需使用其中一个,这样您就有了一个字符串数组,可以从中构建多重选择器 一种方法是这样的:
// Create an Array from the "value" or "text" of the select options
var arrVals = $.map( $dd[0].options, function( opt, i ){
return opt.value || opt.text;
});
// Build a multiple selector by doing a join() on the Array.
$( "#" + arrVals.join(',#') ).show();
如果阵列看起来像:
['Army','Aqua','Bread'];
生成的选择器如下所示:
$( "#Army,#Aqua,#Bread" ).show();
ES6救援!虽然不是jQuery,但我认为值得为未来的读者回答 ES6引入了
.includes()
,它可以按照您的想法工作$。inArray
应该可以:
constmyarray=[“a”、“b”、“c”];
console.log(myArray.includes(“a”))/*true*/
console.log(myArray.includes(“d”))/*false*/
这是选择列表…Gunmetal HeatherKellyGreenBlackberry@Charles:这是因为arrVals
数组不包含'Army'
或'Aqua'
,而是包含一个对象,其中键或值(不确定是哪个)有你想要的字符串。我怎样才能将if语句建立在它的基础上?@Charles:你有什么理由需要val()
和text()
作为键/值对吗?为什么不只是其中一个呢?如果这样做,实际上可以跳过inArray
,只需构建一个选择数组中所有元素的多选择器。我马上举个例子。非常感谢!我刚刚意识到我正在用它尝试一些东西,它不应该再在那里了,我只需要val()。。。再次感谢!
$( "#Army,#Aqua,#Bread" ).show();