如何使用Jquery Selector选择Dropdown隐藏选项?

时间:2018-01-09 10:29:14

标签: javascript jquery asp.net-mvc-4 jquery-ui jquery-plugins

<select class="form-control" id="prodname" name="pname" >
    <option value="0" disabled="disabled" selected="selected">-- Select Product --</option>
    @{
        foreach(var product in (List<tbleProdcutDetail>)ViewBag.productlist)
        {
            <option value="@product.Id">@product.Product_Name</option>
            <option hidden>@product.Quantity</option>
        }
    }
</select>

我想选择此选项。

<option hidden>@product.Quantity</option>

我尝试过这个选择器但无法获取文字。

var productunitprice = $("#prodname option").find("hidden").text();

2 个答案:

答案 0 :(得分:0)

您可以使用下面的var text = $("option:selected",this).next().text()示例。

$("#prodname").change(function() {
  var text = $("option:selected",this).next().text()
  console.log(text)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="prodname">
<option value="1">1</option>
<option hidden>1.1</option>
<option value="2">2</option>
<option hidden>2.2</option>
</select>

答案 1 :(得分:0)

作为添加许多未使用和隐藏选项的替代方法。 您可以使用数据属性(例如data-unit-price)直接将单价添加到相关选项。

foreach(var product in (List<tbleProdcutDetail>)ViewBag.productlist)
{
    <option value="@product.Id" data-unit-price="@product.Quantity">@product.Product_Name</option>
}

然后只需从所选选项中读取它。我认为它更清晰,并没有使用额外的隐藏选项元素作为属于其他选项的数据的存储。

&#13;
&#13;
$(document).ready(function() {
  $("#prodname").change(function() {
    var productunitprice = $("option:selected", this).data('unitPrice')
    console.log(productunitprice)
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" id="prodname" name="pname">
  <option value="1" data-unit-price="5.25">product 45</option>
  <option value="2" data-unit-price="12.99">product 94</option>
</select>
&#13;
&#13;
&#13;