-2

我做了很多搜索,但我无法解决我的问题。

<select id="my_select">
    <option value="Findme_1">Knowing_1
    <option value="Findme_2">Knowing_2
</select>

在一个函数中,我需要在内容中找到带有“Findme_1”的选项的值。

请问我该怎么做?

编辑:我不需要找到所选选项的值,我也不需要使用它的索引找到选项的值,我只知道内容“Knowing_1”并且我想知道值“Findme_1”。

我想过一个循环,但可能还有其他更常见的方式?

4

5 回答 5

0

用这个。 例子

   $('#my_select').find('option[text="Knowing_1"]').val()
于 2013-04-17T17:22:42.407 回答
0

使用 SelectedIndex 属性。检查这个

于 2013-04-17T17:22:44.233 回答
0

这将提醒所选选项的值:

(function() {

    var select = document.getElementById('my_select');
    select.addEventListener('change', function(){
        alert( select.options[select.selectedIndex].value );
    });

})();

此外,您应该关闭您的选项元素:

<select id="my_select">
    <option value="Test_1">Findme_1</option>
    <option value="Test_2">Findme_2</option>
</select>

完整代码和预览:http: //jsfiddle.net/CX5aq/

于 2013-04-17T17:23:27.177 回答
0

首先,您的 html 不正确,您缺少关闭标记。应该是这样的

<select id="my_select">
    <option value="Test_1">Findme_1 </option>
    <option value="Test_2">Findme_2 </option>
</select>

然后我猜,每当用户选择下拉菜单时,您都希望通过 javascript 获取值,所以现在编写一个 javascript

<script> 
    document.getElementById('my_select').onchange = function(){

      var my_value = this.value; // you have your new value on the variable my_value

    }; 
</script> 
于 2013-04-17T17:24:33.297 回答
0

<option>通过其文本查找,您可以遍历options集合并检查textContent(标准)或innerText(IE,非标准):

function valueByText(select, text) {
    var options = select.options;
    var textContent;

    for (var i = 0, l = options.length; i < l; i++) {
        textContent = options[i].textContent || options[i].innerText;

        if (textContent.indexOf(text) >= -1) {
            return options[i].value;
        }
    }

    return null;
}

var result = valueByText(document.getElementById('my_select'), 'Knowing_1');

示例:http: //jsfiddle.net/jXpS2/


此外,如果您有可用的 DOM 库,它们可以帮助简化这一点。

比如 jQuery 的:contains()选择器

var result = $('#my_select option:contains("Knowing_1")').val();

示例:http: //jsfiddle.net/rcjfj/

于 2013-04-17T17:52:59.483 回答