2017-04-07 58 views
-1

我的功能有一個很髒的工作代碼。但是這看起來很錯,我想清理它。這裏的片段:缺少「#」和「。」的jQuery選擇器

var id = 'foo1';   //$(this).closest('.myclass').attr('id'); 
var class = 'morefoo';  //$(this).attr("class").split(" ").pop() 

$('#' + id + ' .' + class).show(); 

有人有一個想法如何寫這更聰明? Webstorm不喜歡這個'#'+ myvar +'。'不是真的。

+1

是的,我知道她的感受。你在準備什麼?我在這裏看不到任何類型的清潔 - 請想一想,究竟是「清潔」? –

+1

JavaScript是JavaScript中的一個[保留字](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Reserved_keywords_as_of_ECMAScript_2015):調用'class'變量幾乎其他任何東西,它應該(*可能*)沒問題;不過請注意,我從來沒有使用Webstorm,所以我不完全確定。是否有一個特定的錯誤消息,導致你相信這個結構是一個問題? –

+0

我剛剛在這裏使用了var類。我正在使用另一個var名稱。 我的意思是清理'#'+ var +'之間的混合。 + var ..這看起來很可怕。 –

回答

3

這裏沒什麼可以做的。正好連接和第一建立自己的選擇,並將其分配給一個變量一樣,

var elmId = 'foo1'; 
var elmClass = 'morefoo'; 

var elmSel = '#' + elmId + ' .' + elmClass; 

$(elmSel).show(); //this way, you can use elmSel instead of concatenating every time 

注意:不能使用class作爲變量名,因爲它是一個保留關鍵字。此外,避免使用id作爲變量名稱,因爲它太泛化。