2010-09-21 62 views
3

當我運行這個功能:爲什麼jQuery不接受這個字符串?

onUnCheck: function(el) { 
var thenames = "icon-"+el.find("label:first").text().replace(/ /g,'').toLowerCase();   
alert(thenames);    
$("'."+thenames+"'").hide("fast"); 
} 

我生成的字符串。我可以在alert()中看到它確實是正確的字符串。例如:

icon-jira 

但是,當我傳遞字符串作爲jQuery選擇器它不起作用。

我知道該函數的邏輯是合理的,因爲粘貼alert()的結果會使其工作。

爲什麼jQuery不接受我的字符串?

回答

5
$('.'+thenames).hide("fast"); 

這會查找「.icon-jira」。您正在尋找「'.icon-jira'」,它將引號添加到選擇器中。

+0

你是對的:-)謝謝 – 2010-09-21 17:31:48

4

看起來你有一套額外的單引號('')。試試這個:

onUnCheck: function(el) { 
    var thenames = "icon-"+el.find("label:first").text().replace(/\s/g,'').toLowerCase();   
    alert(thenames);    
    $("."+thenames).hide("fast"); 
} 

而且,考慮使用的/ /g/\s/g代替 - /\s/g是有點不太容易出錯,多一點可讀性。

+1

你是對的:-)謝謝。 – 2010-09-21 17:31:13

+0

總是在這裏幫助=] – Xavi 2010-09-21 17:36:38

+0

感謝您的額外提示。如果我可能會問一個更愚蠢的問題:如果我想刪除:句點,逗號,(),/,\和_,我將如何添加到此替換? – 2010-09-27 02:10:23

相關問題