2012-11-17 16 views
1

我想如果點擊獲得的期權價值,並將其分配給變量。然後將這個變量作爲選擇器的一部分來隱藏一個元素。我使用這個代碼,但如果我使用的變量沒有奏效:jQuery的變量作爲選擇不工作

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

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

}); 

我有一個display: nonediv#state_arizona,我想這個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> 

任何幫助嗎?

+4

你的HTML看起來像什麼? '#國家UL'特別是? –

+0

是像選擇器字符串一樣的小寫文本嗎?選擇器區分大小寫。也將使用'$ .trim($(本)。兒童( 'A')。文本())'所以任何空格去掉以及任何其他HTML – charlietfl

+0

@DavidThomas我已經發表了UL HTML。 – kumo99

回答

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

'html()'不起作用...將包含span標籤 – charlietfl

+0

您是對的。我修復了它。謝謝。 –

+0

我用你的代碼與文本(),它的工作..謝謝。 – kumo99

0

有幾件事。

如果你不得不調整你的HTML能力做到這一點:

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

然後在你的JS,你可以使用。數據得到狀態的值,而不知道它是什麼樣子:

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