我有多个表格,其中我正在显示评论。每个表都有相同的元素。 我想点击“回复”按钮并选择id =“comment-id。$ row ['id']。'”使用jquery
<tr>
<td align="right" colspan="9" id="reply-td">
<input type="button" class="reply" name="reply" value="reply" title="reply" />
</td>
</tr>
<tr>
<td align="left" colspan="9">
<input id="comment-id'. $row['id'] .'" type="hidden" value=""/>
<input id="respond'. $row['id'] .'" type="hidden" value=""/>
</td>
</tr>
答案 0 :(得分:1)
它是唯一的“评论ID ......”字段吗?在这种情况下,您可能会执行类似
的操作var field = $('input[id^="comment-id"]');
它是该表中唯一的一个吗?在那种情况下你可以做
$('.reply').click(function() {
var field = $(this).closest('table').find('input[id^="comment-id"]');
});
这些都不是吗?那么,你可以这样做:
$('.reply').click(function() {
var field = $(this).closest('tr').next('tr').find('input[id^="comment-id"]');
});
如果我们确切地知道您愿意对您的DOM做出哪些假设,那么哪种具体方法最适合您。
如果改变DOM不是不可能的,那么首先,我会将类添加到隐藏字段以便于访问(.comment-id
超过input[^="comment-id"]
)。您也可以,如果您的DOM完全不可预测且上述方法都不适合您,请将id="reply'. $row['id'] .'"
添加到您的回复按钮,以便您可以从那里解析ID,并执行以下操作:
$('.reply').click(function() {
var field = $('#comment-id' + $(this).attr('id').replace('reply',''));
});
同样,最好的方法取决于你知道你可以依赖的关系始终存在。
答案 1 :(得分:0)
$("input[id=^'comment-id']").click(function() { alert($(this).attr("id")); });
答案 2 :(得分:-1)
除了@David Hedlund的答案之外,我可能还想要安全,具体取决于具体情况:
$('.reply').click(function(evt) {
evt.preventDefault();
var field = $(this).closest('table').find('input[id^="comment-id"]');
});