如何在下拉列表中选择最后一个索引值?

时间:2016-09-16 13:37:55

标签: javascript dom drop-down-menu

如何使用Javascript读取并选择下拉列表中的最后一个索引值?

HTML的一个示例。

<select name="unqiue">
  <option value="number:1" label="1">1</option>
  <option value="number:2" label="2" selected="selected">2</option>
  <option value="number:3" label="3">3</option>
  <option value="number:4" label="4">4</option>
</select>

下拉值可能不同,我需要选择并选择最后一个值4。

2 个答案:

答案 0 :(得分:2)

您可以使用document.querySelectorAll('select[name="unqiue"] option:last-child')[0]

示例:

&#13;
&#13;
var lastOpt = document.querySelectorAll('select[name="unqiue"] option:last-child')[0];

//
// To select this element:
//

lastOpt.selected = true;

//
// To get the value
//

var val = lastOpt.value.replace(/\D*/, '');

console.log(val);
&#13;
<select name="unqiue">
    <option value="number:1" label="1">1</option>
    <option value="number:2" label="2" selected="selected">2</option>
    <option value="number:3" label="3">3</option>
    <option value="number:4" label="4">4</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您的示例似乎表明var object = { "A": "a", "B": "b", "C": "c" }; function lookup1(value) { return object[value]; } function lookup2(value) { return { "A": "a", "B": "b", "C": "c" }[value]; } var dateBefore = new Date().getTime(); for (var i = 0; i < 100000000; i++) { var a = lookup2('A'); } var dateAfter = new Date().getTime(); console.log(dateAfter - dateBefore); var dateBefore = new Date().getTime(); for (var i = 0; i < 100000000; i++) { var a = lookup1('A'); } var dateAfter = new Date().getTime(); console.log(dateAfter - dateBefore);是标记中select的唯一值。

您可以使用document.querySelector获取此项目,然后阅读或操作它。

name
const unique = document.querySelector('select[name="unqiue"]');
const valueLast = unique.lastElementChild.value;
console.log(valueLast);
const textLast = unique.lastElementChild.textContent;
console.log(textLast);
unique.selectedIndex = unique.length - 1;

ParentNode.lastElementChild

Node.textContent

HTMLSelectElement.selectedIndex

HTMLSelectElement