Javascript 如何从期权的价值中获取其指数
我知道如何从其索引中获取选项的值,如下代码部分所示 是否有方法通过传递文本/值(即“白色”或“蓝色”)来获取相应的索引Javascript 如何从期权的价值中获取其指数,javascript,Javascript,我知道如何从其索引中获取选项的值,如下代码部分所示 是否有方法通过传递文本/值(即“白色”或“蓝色”)来获取相应的索引 <select id="Color"> <option>white</option> <option>blue</option> </select> var x = document.getElementById("Color").selectedIndex; var y = document.getEl
<select id="Color">
<option>white</option>
<option>blue</option>
</select>
var x = document.getElementById("Color").selectedIndex;
var y = document.getElementById("Color").options;
alert("Index: " + y[x].index + " is " + y[x].text);
白色
蓝色
var x=document.getElementById(“颜色”)。选择索引;
var y=document.getElementById(“颜色”).options;
警报(“索引:+y[x]。索引+”是“+y[x]。文本);
使用jQuery是可能的
function returnIndex(value) {
var selected = $("option:contains(" + value + ")")[0];
if (selected) {
selected.selected = "true";
return selected.index;
} else {
console.log("Value does not exist");
}
}
var x = document.getElementById("Color").selectedIndex;
var y = document.getElementById("Color").options;
var chosen = document.getElementById("Color").value;
alert("Index: " + returnIndex(chosen) + " is " + y[x].text);
您可以通过以下方式找到项目的索引
var z = "blue";
var y = document.getElementById("Color").options;
var myArray = [];
for(var i=0;i<y.length;i++)
{
myArray.push(y[i].text);
}
var elementPos = myArray.map(function(x) {return x; }).indexOf(z);
alert(elementPos);
var z=“蓝色”;
var y=document.getElementById(“颜色”).options;
var myArray=[];
对于(var i=0;除了迭代一组选项之外,实在没有其他方法。哎呀……我很失望知道这一点。尽管如此,感谢您的快速回复。但是有没有一个函数可以知道数组中是否存在元素?array.prototype.find是一个实验性的函数,不建议在生产代码中使用。还有其他方法吗迭代整个数组并在每次迭代时检查。要检查数组中是否存在DOM元素,使用querySelector()
/querySelectorAll()
是一种很好的做法。后者将返回一个Nodelist
,这将是另一个数组。另一种方法是使用Node.contains(otherNode)
它将返回一个布尔值,即其他节点是否是前者的后代。是的,这是一个很好的方法…但问题是我仍然无法避免迭代。无论如何,非常感谢