выберите другой элемент, кроме того, на который нажали - PullRequest
1 голос
/ 12 января 2010

Как выбрать элемент с помощью jquery, когда щелкают по другому элементу, когда вы не знаете имя элемента? Код ниже перебирает все категории. Я не знаю, сколько существует категорий или какие имена будут. Когда нажата ссылка «insertUrl», мне нужно выделить текстовую область.

Единственное, о чем я могу думать, - это запустить функцию в onclick и передать имя текстовой области в качестве параметра.

Кроме того, я не уверен, что могу использовать селектор, когда каждая ссылка имеет одинаковый идентификатор, так что это вообще возможно?

<%
    FullName = objCategory.ID & "|" & objCategory.Name
%>      
<TD COLSPAN="2">
<TEXTAREA ROWS="5" CLASS="formWide" id="<%=FullName %>"><%= objCategory.Text %></TEXTAREA><br />
<a href="#" id="insertUrl">Insert URL</a>
</TD>

Ответы [ 3 ]

1 голос
/ 13 января 2010

может быть, лучше, если вы используете:

$(this).siblings('textarea');

таким образом вы получаете больше гибкости с порядком элементов управления html. таким образом, если вы удалите
или измените что-то еще внутри этого TD, скрипт все равно будет работать.

1 голос
/ 13 января 2010

Еще лучше было бы использовать элемент <label>. Таким образом, вы можете вставить позже дополнительные элементы между текстовым комментарием и текстовой областью, и это все равно будет работать.

<textarea id="ta_id1" onclick="click_processing_func"></textarea>
<label for="ta_id1" class="link">Insert Url</label>

Теперь, если кто-то нажмет на ярлык, textarea получит событие щелчка.

1 голос
/ 13 января 2010

Если структура HTML остается прежней, вы можете использовать .prev()

У вас не должно быть элементов с одинаковым идентификатором. Вы можете использовать классы class="insertUrl"

<%
  FullName = objCategory.ID & "|" & objCategory.Name
%>      
<TD COLSPAN="2">
  <TEXTAREA ROWS="5" CLASS="formWide" id="<%=FullName %>"><%= objCategory.Text %></TEXTAREA><br />
  <a href="#" class="insertUrl">Insert URL</a>
</TD>

и

$(".insertUrl").click(function() {
  var textarea = $(this).siblings('textarea');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...