Как ограничить диапазон влияния с JQuery? - PullRequest
0 голосов
/ 07 февраля 2010
<table>
...
</table>

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

Выше должен быть динамически загружен ajax.

Я хочу ограничить selector, чтобы он влиял только на DOM в пределах table над ним. Я (не могу присвоить id table)

EDIT

К решению Гамбо:

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

Я думаю, что для вышеупомянутого html произойдет сбой, потому что $('table:last') - это не недавно загруженный table, а table после container

Ответы [ 3 ]

1 голос
/ 07 февраля 2010

Вы должны показать весь html, загружаемый через ajax, а также html, который получит загруженный контент.

Но, скажем, вы загружаете эту таблицу в div # mycontent и предполагаете, что будет только одна таблица:

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

Или лучше, если вы должны вызвать свой javascript в обратном вызове ajax и разделить js и html

$('#mycontent').load('file.php',function(data){
var selector = $('table',data).eq(0);
});
1 голос
/ 07 февраля 2010

Вы можете передать элемент контекста со вторым параметром:

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

Затем селектор оценивается на основе этого контекста.


Редактировать Попробуйте table:last выбрать последний добавленный узел:

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

Это должно работать, так как только узлы до элемента SCRIPT уже добавлены в DOM. Но это работает, только если вы звоните $ напрямую, а не через $.ready или $(document).ready.

0 голосов
/ 07 февраля 2010

Добавить класс в таблицу.

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

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