当您不知道元素的名称时,如何在单击其他元素时选择带有jquery的元素?下面的代码循环遍历所有类别。我不知道有多少类别,或者名称是什么。单击“insertUrl”链接后,我需要选择文本区域。
我唯一能想到的是在onclick中运行一个函数并将文本区域的名称作为参数传递。
此外,我不确定当每个链接具有相同的ID时我都可以使用选择器,所以这甚至可能吗?
<%
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>
答案 0 :(得分:1)
如果HTML结构保持不变,您可以使用.prev()
您不应该拥有相同ID的元素。您可以使用课程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');
});
答案 1 :(得分:1)
如果你使用它可能会更好:
$(this).siblings('textarea');
通过这种方式,您可以更灵活地使用html控件命令。 这样,如果您删除了该内容或更改该内容中的其他内容,脚本仍然可以正常工作。
答案 2 :(得分:1)
更好的方法是使用<label>
元素。这样,您可以在文本注释和textarea之间插入以后的其他元素,它仍然可以工作。
<textarea id="ta_id1" onclick="click_processing_func"></textarea>
<label for="ta_id1" class="link">Insert Url</label>
现在,如果有人点击标签,textarea将收到点击事件。