我首先要说的是,我花了一整天的时间来查找这个问题的答案,并且无法在任何地方找到它。我希望有人可以帮助我。我对jQuery没有经验,所以请耐心等待我。 :)
我在经典ASP中创建了代码,它生成一个从数据库中提取的动态数据表。我希望能够点击表格中的DIV并让它隐藏数据并显示输入字段。我编写的代码执行此操作,但它只针对出现的第一个结果执行此操作,但对其余部分不起作用。 CLASS名称是唯一的,ID也是如此,但仍然不允许jQuery click事件在第2,第3,第4等行上运行。
这是我的jQuery代码:
<script>
$(document).ready(function(){
var taskId = $("div[class*='hide']").attr("id");
var edittaskId = $("div[class*='show']").attr("id");
$("#" + taskId).click(function(){
$("#" + taskId).hide();
$("#" + edittaskId).show();
});
});
</script>
这是我的HTML / ASP代码:
<div id="hide_<%=rs("id")%>" class="hide<%=rs("id")%>" align="right"><%=F_task_due_date%></div>
<div id="show_<%=rs("id")%>" class="show<%=rs("id")%>" style="display: none;">
<div>
<input type="text" name="edit_task_due_date" value="<%=F_task_due_date%>" />
</div>
</div>
</div>
正如我所说的,上面的代码适用于第一个DIV,但不适用于表格下面的其他DIVS。如何让这个jQuery代码允许我点击任何与jQuery代码中的响应相匹配的其他DIV元素,并让它们隐藏/显示?
提前谢谢。
答案 0 :(得分:0)
如果您尝试从一组元素中获取值,例如属性或文本或html,则只能返回一个值,它将是集合中第一个元素的值。
相反,您需要在事件处理程序中处理每个实例案例的值。在课堂上使用唯一标识符很少是必要或有益的。
如果您要删除id
和show
课程的hide
部分,则可以执行以下操作:
$('.hide, .show').click(function(){
/* "this" is the element clicked*/
var taskId=this.id;
$('#hide_'+taskId, #show_'+taskId).toggle();
});
一种不需要身份证的简单方法是:
$('.hide, .show').click(function(){
$(this).toggle().siblings('.hide,.show').toggle();
});