jQuery变量作为选择器无法正常工作

时间:2012-11-17 20:18:56

标签: jquery

如果点击,我正在尝试获取选项值,并将其分配给变量。然后将此变量称为选择器的一部分以隐藏元素。我正在使用此代码,但如果我使用变量它不起作用:

     $("#State ul li").live('click', function (event) {
    var currentstate = $(this).children('a').html();

    if ( $(this).hasClass("selected") ) {
        $("#state_"+currentstate).show();
    };

 });

我有div#state_arizona display: none,我希望此div显示何时选择特定状态。

如果我尝试以下操作,div显示没有问题:

if ( $(this).hasClass("selected") ) {
$("#state_arizona).show();
};

这是ul html:

<ul>
 <li>
     <a href="#" class="ajax-filter-label">
        <span class="checkbox"></span> Alaska </a>
 </li>
</ul>

任何帮助?

2 个答案:

答案 0 :(得分:2)

试试这个:

$("#State ul li").live('click', function (event) {
    var currentstate = $(this).children('a').text();

    if ($(this).hasClass("selected")) {
        $("#state_" + $.trim(currentstate).toLowerCase()).show();
    };
});

请注意,id的选择符区分大小写。

答案 1 :(得分:0)

一些事情。

如果您能够重构HTML,请执行以下操作:

<ul>
  <li>
    <a href="#" class="ajax-filter-label" data-state="alaska">
    <span class="checkbox"></span> Alaska </a>
 </li>
</ul>

然后在你的JS中你可以使用.data来获取状态的值,而不用想知道它会是什么样子:

$("#state_"+ currentstate.data('state')).show();