Javascript从基于标签的选择选项中获取价值

时间:2018-09-20 20:21:15

标签: javascript jquery

使用jQuery或纯JavaScript,如何获取基于标签的选择选项的ID?因此,例如,给出以下内容:

<select id="blah">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

如果我有标签“ Two”,但我需要知道与之关联的值,那么如何从选择中获得该值?我不想简单地选择它,我需要知道值是什么。

3 个答案:

答案 0 :(得分:3)

如果您唯一的引用实际上是实际的文本内容,那么您将不得不遍历元素并检查每个元素的内容。此处显示的jQuery只是因为它的类型更少:

var result;
$("option").each(function() {
    if ($(this).text() == "Two") {
        result = $(this).attr("value");
        return false;
    });
});

答案 1 :(得分:1)

另一个选择:

$('#blah').find('option:contains("Two")').val();

(想要打双关吗?)

答案 2 :(得分:0)

获取所有选项,然后使用find获取带有特定文本的选项。

const optionEls = Array.from(document.querySelectorAll("#blah option"));
const hasText = text => el => el.textContent === text;
const optionWithTwo = optionEls.find(hasText("Two"));
console.log(optionWithTwo.value);
<select id=blah>
  <option value=1>One</option>
  <option value=2>Two</option>
  <option value=3>Three</option>
</select>