【问题标题】:How to search in a select option by text in javascript如何通过javascript中的文本在选择选项中搜索
【发布时间】:2014-11-28 20:25:43
【问题描述】:

我有一个可见和一个隐藏的选择选项。当用户选择某些内容时,我想获取所选选项并在隐藏的选择选项中搜索文本。因为我需要与所选文本匹配的隐藏选择选项的 val。首先我尝试过;

var testx=document.getElementById("priceMatrix");
testx.options[testx.selectedIndex].text=toAdd+"|"+cupSize;

它有效,我可以设置文本但仍然无法设置值。然后我尝试了第二次;

    var myText = toAdd+"|"+cupSize;
    $('#priceMatrix').filter(function () { return $(this).html() == myText; }).prop('selected', true)
    var alertText = $("#priceMatrix option:selected").val();
    alert(alertText);

但它仍然不起作用,$("#priceMatrix option:selected").val();给出第一行的值,而不是选定的值。

那么,问题出在哪里?是关于按钮点击的吗?

【问题讨论】:

  • 你能给我们更多的信息吗?某些 HTML 和您正在运行的任何其他 javascript 将非常有助于为您提供正确的代码。
  • 我的 html 中有两个选择,#priceMatrix 是隐藏的一个,#chooseItem 是可见的一个。它们都具有相同的文本,但隐藏的文本具有不同的值。当用户从#chooseItem 中选择“abc”时,我想将隐藏的文本更改为“abc”并获取“abc”的值。我也试过改变事件,但它仍然不起作用。
  • 第一个 sn-p 的附加行:testx.options[testx.selectedIndex].value=toAdd+"|"+cupSize;.
  • 第二次选择的值不同,所以不能这样设置。我需要与上面选择的文本匹配的第二个选择值。

标签: javascript php select


【解决方案1】:

我找到了一个解决方案并想分享它。我做了一个for循环进入选择。当我找到匹配的文本时,我将其设置为选中,然后我得到了值。

    var selectedOption = toAdd+"|"+cupSize;
    var selectLength = document.getElementById("priceMatrix").length;
    var priceMatrix = document.getElementById("priceMatrix");

    for(i=0; i<selectLength;i++){
        if (priceMatrix[i].text === selectedOption) {
            priceMatrix[i].selected = 'selected';
            var price = $("#priceMatrix option:selected").val();
            var totalPrice = itemNbr1*price;
        }

    }
    alert(totalPrice);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多