jQuery变量作为选择器不起作用

jQuery变量作为选择器不起作用,jquery,Jquery,我试图在单击时获取一个选项值,并将其分配给变量。然后,该变量作为选择器的一部分被调用,以隐藏元素。我正在使用此代码,但如果我使用变量,则它不起作用: $("#State ul li").live('click', function (event) { var currentstate = $(this).children('a').html(); if ( $(this).hasClass("selected") ) { $("#state_"+cur

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

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

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

 });
我有一个
div#state_亚利桑那
,带有
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>
有什么帮助吗?

试试这个:

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

    if ($(this).hasClass("selected")) {
        $("#state_" + $.trim(currentstate).toLowerCase()).show();
    };
});
请注意,按id的选择器区分大小写。

有几件事

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

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

你的HTML是什么样子的?特别是
#State ul
?文本是否像选择器字符串一样小写?选择器区分大小写。还将使用
$.trim($(this).children('a').text())
,以便删除任何空白以及任何其他空白html@DavidThomas我已经发布了ul HTML。@charlietfl我尝试了修剪,但仍然没有工作。@DavidThomas抱歉,上面有。太好了,很高兴我帮助了:-)
$("#state_"+ currentstate.data('state')).show();