1

我对 jquery 的了解非常有限,我希望能够从下拉选择中读取 Class 值。

最终列表有一些标记在下拉列表右侧,因此我无法使用标准选择和选项。

我创建了这个小提琴,你可以尝试读取这个值。

http://jsfiddle.net/ZLvSN/1/

请原谅我没有最优雅的解决方案。或者也许我过度复杂化了需求。

所以你知道我读过的课程,我把我的语言存储在一个cookie中。

谢谢大家的帮助。

这是我的简单菜单列表。

<div id="language" >
   <dl class="dropdown">
        <dt><a href="#"><span>Change Language. </span></a></dt>
     <dd>
       <ul>
         <li><a href="#">English<span class="flag-uk"></span></a></li>
         <li><a href="#">English US<span class="flag-us"></span></a></li>
         <li><a href="#">Français<span class="flag-fr"></span></a></li>
         <li><a href="#">Deutsch<span class="flag-de"></span></a></li>
         <li><a href="#">Español<span class="flag-es"></span></a></li>
         <li><a href="#">Italiano<span class="flag-it"></span></a></li>
         <li><a href="#">Polski<span class="flag-pl"></span></a></li>
         <li><a href="#">Русский<span class="flag-ru"></span></a></li>
         <li><a href="#">Português<span class="flag-br"></span></a></li>
         </ul>
       </dd>
   </dl>    
</div>

     <span id="result"></span>

和jQuery

       $(document).ready(function() {

            $(".dropdown dt a").click(function()  { $(".dropdown dd ul").toggle(); });               
            $(".dropdown dd ul li a").click(function() {
                var $this= $(this),
                    text= $this.html(),
                    text2= $this.span,
                    text3= $this.a;

                console.log($this); // debug test
                console.log(text); //debug test
                $(".dropdown dt a span").html(text);
                $(".dropdown dd ul").hide();
                $("#result").html("Selected value is: " + text3);
            });

   $(document).on('click', function(e) {
                var $clicked = $(e.target);
                if (! $clicked.parents().hasClass("dropdown"))
                    $(".dropdown dd ul").hide();
            });
        });
4

1 回答 1

0

尝试这个:

$(document).ready(function () {

        $(".dropdown dt a").click(function () {
            $(".dropdown dd ul").toggle();
        });
        $(".dropdown dd ul li a").click(function () {
            var $this = $(this),
                text = $this.text(),
                text2 = $this.span,
                text3 = $this.a,
                text4 = $this.find('span').prop('class');

            console.log($this);
            console.log(text);
            $(".dropdown dt a span").html(text);
            $(".dropdown dd ul").hide();
            $("#result").html("Selected value is: " + text+" and class is: "+text4);
        });

        $(document).bind('click', function (e) {
            var $clicked = $(e.target);
            if (!$clicked.parents().hasClass("dropdown")) $(".dropdown dd ul").hide();
        });
    });

演示在这里

它给出的结果是:

text = $this.text()  // this gets the text Ex. Deutsch
text4 = $this.find('span').prop('class'); // this looks after the next <span> and gets  its class Ex. flag-de
于 2013-08-11T10:40:06.717 回答