2010-10-22 43 views
0
 $(".mylink").live('click', function(){ 
    var linkid = $(this).attr('id'); 
    if($("#TBL").find('tbody > '+ #linkid).css("display")=="inline"){ 
     // Do Somerthing 
    } 
    }); 

我必須把動態變量「的linkID」在上述條件下,如果亞姆希望有解釋的價值 .Iam收到「無效字符錯誤。我如何做到這一點我如何把這個動態的Jquery變量這個條件

回答

1

你可以只是這樣做:

$(".mylink").live('click', function() { 
    if ($(this).css("display")=="inline") { 
    // Do Somerthing 
    } 
}); 

由於標識應該是唯一的,你可以只使用this,你應該已經有一個ID的唯一元素。如果您有多個具有相同ID的元素,這是另一個需要尋址的問題,那麼您可能應該在處理程序中使用href="#id"$(this.hash)

1

應該是簡單的:。

.find("tbody > #" + linkid); 

你可以把#標誌直接到JavaScript因爲#linkid不是有效的JavaScript

要特別小心,您可能希望使用正則表達式來轉義ID中的CSS3字符。有關哪些字符需要轉義的更多信息,請參閱here

UPDATE

尼克的答案是正確的,並適用於你的情況。我沒有注意到您正在嘗試使用您點擊的相同元素的ID。 this引用了生成點擊的元素,因此您不必再通過jQuery抓取它。

一般來說,如果您想在jQuery選擇器字符串中使用包含id的變量,上面所寫的內容將起作用。