JQuery найти элементы имени класса в том же контейнере - PullRequest
3 голосов
/ 01 июля 2010

У меня есть UserControl в MVC, который может повторяться много раз на странице.

Скажем, у меня было что-то вроде следующего:

<div>
    <a href="#" class="enableTextBox">edit</a>"
    <input type="text" class="comments" readonly="readonly" />
</div>

<div>
    <a href="#" class="enableTextBox">edit</a>"
    <input type="text" class="comments" readonly="readonly" />
</div>

<div>
    <a href="#" class="enableTextBox">edit</a>"
    <input type="text" class="comments" readonly="readonly" />
</div>

Как мне найти class="comments"элемент, который находится в том же div , что и ссылка class="enableTextBox", в событии onclick ссылки?

Является ли это разумным способом обработки конфликтов идентификаторов элементов?Есть ли способ лучше?Насколько безопасным он будет с точки зрения работы в корпоративном приложении и обеспечения целостности данных?

Ответы [ 2 ]

2 голосов
/ 01 июля 2010

Использование метода jQuery .siblings() возможно только одним способом:

$('.enableTextBox').click(function() {
    var $comments = $(this).siblings('.comments');
    return false;  // Prevent page refresh
});

В jQuery доступно множество методов обхода:

РЕДАКТИРОВАТЬ: Добавлено return false; для предотвращения обновления страницы ссылкой.

Вот пример, который вы можететест: http://jsfiddle.net/MZEmP/

1 голос
/ 01 июля 2010
$(".enableTextBox").click(function() {
   $(".comments", $(this).parent())  //this will get you the comments associated with the anchor you click on
})
...