2014-10-02 74 views
2

我想通過一個變量作爲索引來設置一個有點jQuery的活動行。我有我的變量存儲正確,但似乎無法讓jquery接受參數中的變量。在jQuery中轉義變量

下面是我得到了什麼:

$(this).find("td:eq('storeDex')").addClass("activeRow"); 

storeDex是可變的,如果我把一個正常的數字有它似乎做工精細,我想也許我需要逃避vaiable一些如何,但我似乎無法弄清楚如何去做。任何幫助將非常感激。謝謝!

+0

好的,我終於在下面的答案中得到了我的代碼片段。基本上就像你說的那樣,你必須逃避變量,但它不會被稱爲轉義,它實際上是jQuery選擇器字符串的串聯,以將變量作爲字符串包含在字符串中。 – Zack 2014-10-02 21:55:06

回答

6

從jQuery:EQ選擇文檔http://api.jquery.com/eq-selector/

$("td:eq(2)").css("color", "red"); 

所以我離開了單引號在你的榜樣,結果是這樣的:

$(this).find("td:eq(" + storeDex + ")").addClass("activeRow"); 

片段示例

var storeDex = 2; 
 
$(function() { 
 
    $("td:eq(" + storeDex + ")").addClass("activeRow"); 
 
});
.activeRow { 
 
    background-color:yellow; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<table> 
 
    <tr> 
 
    <td>Table cell 1</td> 
 
    <td>Table cell 2</td> 
 
    <td>Table cell 3</td> 
 
    <td>Table cell 4</td> 
 
    </tr> 
 
</table>

4

你需要終止你的字符串,追加變量並用另一個字符串完成你的jquery選擇器。

$(this).find("td:eq('" + storeDex + "')").addClass("activeRow");