Javascript 循环通过并以“value1”、“value2”、“value3”的格式构建数组
我想知道是否有人能建议使用jQuery遍历元素中的所有s并构建数组的最佳方法 例如 而不是将字符串ins传递给autoCompleteArrayJavascript 循环通过并以“value1”、“value2”、“value3”的格式构建数组,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我想知道是否有人能建议使用jQuery遍历元素中的所有s并构建数组的最佳方法 例如 而不是将字符串ins传递给autoCompleteArray $("#CityLocal").autocompleteArray( [ "Aberdeen", "Ada", "Adamsville", "Zoar" //and a million other cities... ], { delay:10,
$("#CityLocal").autocompleteArray(
[
"Aberdeen", "Ada", "Adamsville", "Zoar" //and a million other cities...
],
{
delay:10,
minChars:1,
matchSubset:1,
onItemSelect:selectItem,
onFindValue:findValue,
autoFill:true,
maxItemsToShow:10
}
);
…我需要循环一个数组中的所有变量,并将它们放入一个数组中,然后将该数组变量传递给函数,而不是一个长字符串
例如
如果您能建议如何以正确的格式将内容推入数组,我将不胜感激。我几乎已经使用了这个网站上另一篇文章中的循环部分
谢谢。这应该可以:
$(document).ready(function(){
// array of option elements' values
var optionValues = [];
// array of option elements' text
var optionTexts = [];
// iterate through all option elements
$('#sel > option').each(function() {
// get value/text and push it into respective array
optionValues.push($(this).val());
optionTexts.push($(this).text());
});
// test with alert
alert(optionValues);
alert(optionTexts);
});
假设您的select元素具有ID sel。该函数可能就是您正在寻找的。下面的代码将创建一个数组,其中包含选项的所有值或文本值
您所需要做的就是将数组作为第一个参数传递,而不带括号。方括号创建一个新数组,但您不需要这样做,因为您已经传递了一个数组。只要做:
$("#CityLocal").autocompleteArray(
MyBigArrayOfOptions,
{
delay:10,
minChars:1,
matchSubset:1,
onItemSelect:selectItem,
onFindValue:findValue,
autoFill:true,
maxItemsToShow:10
}
);
如果我正确理解了您的问题,以下代码应该满足您的需要:
myFunction($("#my-select option"));
查询的输出已经是一个选项数组,这些选项是select的后代,因此不需要将它们推送到另一个数组中。或者,如果您的select没有id,但有DOM元素:
myFunction($("option", theSelect));
将此想法插回到您的代码中:
$("#CityLocal").autocompleteArray(
$("option", theSelect),
{
delay:10,
minChars:1,
matchSubset:1,
onItemSelect:selectItem,
onFindValue:findValue,
autoFill:true,
maxItemsToShow:10
}
);
对不起,我看不出这个特定的示例是如何工作的。$my select选项如何生成所需格式的数组?您将如何仅为所选项目筛选该数组?在.each循环中:if this.selected{//code for push}
myFunction($("option", theSelect));
$("#CityLocal").autocompleteArray(
$("option", theSelect),
{
delay:10,
minChars:1,
matchSubset:1,
onItemSelect:selectItem,
onFindValue:findValue,
autoFill:true,
maxItemsToShow:10
}
);