在<span>在<选择>

getting the id inside a <span> inside a <select>

本文关键字:gt lt 选择 span      更新时间:2023-09-26

我有以下代码:-

<div class="DropDownContainer">
    <select class="DropDown">
        <option><span id="lblPeriod">Period</span></option>
        <option><span id="lblLike">Like</span></option>
        <option><span id="lblYear">Year</span> </option>
    </select>
</div>    

现在我正在尝试获取所选值的id,我有以下jquery:-

        $('.DropDown').on('change', function () {
           var id = $(this).children(":selected").attr("span.id");
           alert(id);
        });

但是id未定义$(this).val()将返回文本,例如"Period"、"Like"或"Year",但我需要id,因为这是一个多车道项目,所以我必须依赖id。

我的jquery出了什么问题?

感谢您的帮助和时间

选项元素内部不能有跨度:

将您的html更改为:

<select class="DropDown">
    <option id="period">Period</option>
    <option id="like">Like</option>
    <option id="year">Year </option>
</select>

$('.DropDown').on('change', function () {
   var id = $(this).children(":selected").attr("id");
   alert(id);
});

如果多语言是你在Asp.net中的问题,你也可以有选项元素的资源密钥,比如:

<asp:DropDownList id="MyDdl" runat="server">
   <asp:ListItem Value="period" Text="period" meta:resourcekey ="period_Item_MyDdl" />
   <asp:ListItem Value="like" Text="like" meta:resourcekey ="like_Item_MyDdl" />
   <asp:ListItem Value="year" Text="year" meta:resourcekey ="year_Item_MyDdl" />
</asp:DropDownList> 

它使用工作

<div class="DropDownContainer">
    <select class="DropDown">
        <option id="lblPeriod">Period</option>
        <option id="lblLike">Like</option>
        <option id="lblYear">Year</option>
    </select>
</div>

$('.DropDown').on('change', function () {
  var id = $(this).children(":selected").attr("id");
  alert(id);
});

您可以设置选项元素的ID。此外,您必须在选项上设置一个value属性,才能将其作为可提交表单使用

参见fiddle:http://jsfiddle.net/YdXpv/1/

使用find()prop()

 var id = $(this).children(":selected").find('span').prop("id");

使用以下代码:

 $('.DropDown').on('change', function () {
      var id = $(this).children(":selected").text().find("span").prop("id");
      alert(id);
 });