好的,如果这会影响答案,我会使用Razor和jquery 1.5.1。
我有一些简单的jquery,我从这个网站上的另一篇文章中复制过来。我有使用Razor引擎渲染的可变数量的部分。
我希望能够隐藏/显示每个部分下的数据(包含在div中)。
所以HTML是
<div>Course 1<a class="toggle" href="javascript:void(0);">Click</a>
<div class="contentHidden" style="display:none;"> content here </div></div>
<div>Course 2<a class="toggle" href="javascript:void(0);">Click</a>
<div class="contentHidden" style="display:none;"> content here </div></div>
jquery是;
<script type="text/javascript">
$(document).ready(function(e) {
$(".toggle").click(function (e) {
e.preventDefault();
$(this).children("div").toggle();
});
});
jquery位于视图的底部,我已添加document.ready
位以确保<a>
标记确实存在。
我考虑过的一件事是我使用剃刀@foreach()
创建页面内容,但是在内容流式传输到浏览器之前必须在服务器上进行,所以我不相信我是在创建链接之前这样做的,不应该使用live或delegate。
但我现在已经陷入困境,所以有人可以建议我如何追踪这一点(或者更好地解决它: - )
答案 0 :(得分:4)
a
个元素没有div
个孩子。相反,它是下一个元素:
$(this).next("div").toggle();
视觉上div
可能位于a
元素下。然而,重要的是DOM结构,其中div
是a
的兄弟。