这个html代码是由我的php代码生成的,但我将其复制出浏览器的HTML代码。
console.log打印出undefined。我不知道为什么。像往常一样,这可能是一个非常愚蠢的错误。谢谢你的帮助。
$('.show').click(function() {
var id = $(this).attr('id');
var div = $("div#" + id);
console.log(div.html());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Heading <a href='#' class='show' id='2962'>+</a></h3>
<div class='.slidetoggle' id='2962' style='display: none;'>
<p>Test!</p>
</div>
答案 0 :(得分:5)
这是因为.show
元素是a
,而不是div
。选择器错误:
var div = $("a#" + id);
更新
你是对的,但我想展示div,而不是a
在这种情况下,您需要使用DOM遍历来查找相关元素。您当前的代码不起作用,因为您有重复的id
属性。这是无效的,因为它们必须是唯一的。试试这个:
$('.show').click(function() {
$(this).closest('h3').next('.slidetoggle').slideToggle();
});
&#13;
.slidetoggle { display: none; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Heading <a href="#" class="show">+</a></h3>
<div class="slidetoggle">
<p>Test!</p>
</div>
<h3>Another Heading <a href="#" class="show">+</a></h3>
<div class="slidetoggle">
<p>Another Test!</p>
</div>
&#13;
答案 1 :(得分:1)
我还没有发表评论的声誉所以我必须将其作为答案,但你想要的元素是一个nchor,但你的jQuery选择器是针对一个元素。