2010-02-07 118 views
0
<table> 
... 
</table> 

<script type="text/javascript"> 
$(selecctor).click(...) 
</script> 

以上是是動態的通過AJAX加載。如何用jQuery限制影響範圍?

我想要做的是限制selector,使其隻影響table它。我上述內DOM(不能分配idtable

編輯

要甘博的解決方案:

<div id="container"> 
</div> 
<table> 
.. 
</table> 

我覺得上面的HTML,它會失敗,因爲$('table:last')不是新加載table,但tablecontainer

回答

1

您可以pass a context element與第二個參數:

$("selector", $("table")).click(...) 

然後選擇是基於這方面進行評估。


編輯嘗試table:last選擇最後添加的節點:

$("selector", $("table:last")).click(...) 

這應該工作,因爲只有節點到SCRIPT元素已經被添加到DOM。但是,如果您直接撥打$而不是通過$.ready$(document).ready,則此功能纔有效。

+0

'$(「table」)'不足以限制影響範圍。 – user198729 2010-02-07 13:03:15

+0

@ user198729:那麼如何從特定環境中識別出特定的表? – Gumbo 2010-02-07 13:05:59

+0

我不知道。我猜想一些神奇的傢伙可能知道:) – user198729 2010-02-07 13:07:32

0

將一個類添加到表中。

<table class="myUniqueClass">...</table> 

$(".myUniqueClass").click(...); 
+0

「表」可能會被加載多次,每次填充不同的數據。 – user198729 2010-02-07 13:02:21

+0

而且......如果你更詳細地解釋你在做什麼,你可能會得到你需要的幫助。 – Andrew 2010-02-07 13:10:22

+0

這是@pixeline的評論。 – user198729 2010-02-07 13:11:51

1

您應該顯示通過ajax加載的整個html以及將會接收加載的內容的html。

但是,說你裝一個div#爲myContent這裏面的表,假設只會有一個表:

$('#mycontent table:first').click(); 

或者更好的,假設你應該打電話給你的JavaScript在Ajax回調並分離JS和html

$('#mycontent').load('file.php',function(data){ 
var selector = $('table',data).eq(0); 
}); 
+0

這種方式一定會工作。但是,我想讓它成爲可能我需要做的就是'$('container').load('file.php')'。這些監聽器都加入到'file.php'中。 – user198729 2010-02-07 13:10:54

+0

好吧,我很抱歉地告訴你:是不是*可靠的方式*做你想問什麼爲什麼你保留這些不好的約束(不分離代碼和行爲,沒有給你的表的ID或類)? 爲什麼使用jQuery,如果你不使用它它應該被使用的方式? – pixeline 2010-02-07 15:56:07