我试图通过 选择一个元素class
,当它被点击时,父级被切换。
HTML:
`
great-grandparent <div class='section' id='section-18'>
grandparent <div class='docs'>
parent <div class='octowrap'>
* <a class='octothorpe' href='#section-18'>#</a>
`
$('octothorpe').closest('div.section').click(function() {
$(".fold").toggle(500);
console.log('fold', $('.fold').length);
});
});
console.log("closest", $('.octothorpe').closest('div.section').length);
`
<style>
.fold {
display: None;
}
</style>
`
q1 回答 <<都不起作用,那么如何测试类元素是否被选中?我可以输出标准控制台日志消息吗?(我尝试查看 firefox 检查器,但无法判断它是否被选中。我如何测试这种简单的方法?(即不改变颜色等。只是在日志中?)>>
我链接功能是否正确单击和切换?只有孩子可以被点击,(octothorpe 是一个 href),但是父 .section 是什么需要被切换?
对于下面的代码:
控制台日志。(对于父母的测试)最接近 = 1 ,永远不会改变。
(用于测试折叠)每次单击时折叠增量。但是即使使用 preventDefault(),toggleClass 也没有效果。风格display:None
在这种情况下不起作用吗?
`
$(function() {
$(".octothorpe").click(function(e) {
e.preventDefault();
var sector = $(this).closest("div.section");
sector.toggleClass(".fold");
//sector.(".fold").toggle();
console.log('fold', $('.fold').length);
});
});
console.log("closest", $('.octothorpe').closest('div.section').length);
嗨,谢谢到目前为止。经过一番摆弄后,我想我不能只选择曾祖父母,而是选择父母兄弟姐妹和祖父母兄弟姐妹。如果我只选择曾祖父母类,那么元素本身就会丢失,因为我无法将它带回来!
因此,我尝试了下面更具选择性的代码。但是,如下所示的 hide 或 slideUp/Down 似乎都没有做任何事情。console.log 输出显示折叠类递增,因此正在选择元素。
这段代码有什么问题?
`
$(function(){
$('.octothorpe').on({
click:function(e){
e.preventDefault();
var pfold =$(this).closest('.octowrap').siblings('p');
var cfold =$(this).closest('docs').siblings('.code');
$pfold=$(pfold); $cfold=$(cfold);
//$pfold.hide();
//$cfold.hide();
if (!$pfold.hasClass("fold") && !$cfold.hasClass("fold")) {
$cfold.slideUp().addClass('fold');
$pfold.slideUp().addClass('fold');
console.log('fold', $('.fold').length);
}
else {
cfold.slideDown().removeClass('fold');
pfold.slideDown().removeClass('fold');
}
}
});
});
`
`