JQuery基于相同的li元素获取选项文本

时间:2014-09-23 10:13:37

标签: jquery html select options

我正在处理一个select选项,我不知道如何从选项值的选项中获取文本。

例如,我想获得文本"丹麦语"如果值为da,

选项选择的html如下

<div id="language" class="dd-container" style="width: 333px;">
  <div class="dd-select">
     <input class="dd-selected-value" name="language" type="hidden" value="en">
     <a class="dd-selected"><label class="dd-selected-text">English</label></a>
     <span class="dd-pointer"></span>
  </div>

    <ul class="dd-options dd-click-off-close">
        <li><a class="dd-option dd-option-selected"> 
            <input class="dd-option-value" type="hidden" value="en"> 
            <label class="dd-option-text">English</label></a>
        </li>

        <li><a class="dd-option"> 
            <input class="dd-option-value" type="hidden" value="da"> 
            <label class="dd-option-text">Danish</label></a>
        </li>

        <li><a class="dd-option"> 
            <input class="dd-option-value" type="hidden" value="nl"> 
            <label class="dd-option-text">Dutch</label></a>
        </li>
    </ul>
</div> 

在我的jquery中,我可以使用以下语句获得值

 var langname = $('li a.dd-option input.dd-option-value[value="da"]').val();
 alert(langname);

但我无法通过此

获取文字
 var langname = $('li a.dd-option input.dd-option-value[value="da"]').text();
 alert(langname);

有没有人有解决方案?

2 个答案:

答案 0 :(得分:0)

label是input元素的兄弟。您需要使用正确的选择器来定位下一个标签元素:

 $('li a.dd-option input.dd-option-value[value="da"]').next().text();

答案 1 :(得分:0)

您可以使用jquery closest方法实现此目的,如下所示:

 var langname = $('li a.dd-option input.dd-option-value[value="da"]').closest('a').text();

 alert(langname);

jsfiddle相同的