Javascript 隐藏替换div与replaceWith()问题

Javascript 隐藏替换div与replaceWith()问题,javascript,html,jquery,Javascript,Html,Jquery,我想做的是用另一个div替换整个div,每次都会导致一个新的div,并用链接替换它。我很接近,但只有第一个选择正确 一次只能显示一个div $(文档).ready(函数(){ $(“.link2”)。单击(函数(){ $(“.changesections”).replace为($(“#section2”).show()); }); $(“.link1”)。单击(函数(){ $(“.changesections”).replace为($(“#section1”).show()); }); $(“

我想做的是用另一个div替换整个div,每次都会导致一个新的div,并用链接替换它。我很接近,但只有第一个选择正确

一次只能显示一个div

$(文档).ready(函数(){
$(“.link2”)。单击(函数(){
$(“.changesections”).replace为($(“#section2”).show());
});
$(“.link1”)。单击(函数(){
$(“.changesections”).replace为($(“#section1”).show());
});
$(“.link3”)。单击(函数(){
$(“.changesections”).replace为($(“#section3”).show());
});
$(“#第2节”).hide();
$(“#第3节”).hide();
});

链接1

链接2

链接3
**链接1

**链接2

**链接3
****链接1

****链接2

****链接3

如果您的想法只是隐藏/显示,那么您可以这样做(我改进了您的代码以使其干燥):

const sections=$('.changesections')
$('#section 2,#section 3').hide()
功能切换部分(链接,分区){
$(链接)。在('click',e=>{
log(`toggled${div}`)
节。隐藏()
$(div.show()
})
}

对于(假设i=1;i如果您的想法只是隐藏/显示,那么您可以这样做(为了保持干燥,我改进了代码):

const sections=$('.changesections')
$('#section 2,#section 3').hide()
功能切换部分(链接,分区){
$(链接)。在('click',e=>{
log(`toggled${div}`)
节。隐藏()
$(div.show()
})
}

对于(让i=1;i我会使用一些CSS来帮助你,正如你所命名的东西链接,我会实际使用链接,这也可能给你一些小的SEO好处。然后我会直接隐藏和显示,而不是更改DOM

$(“.changesections a”)。在(“单击”)上,函数(e){
//获取arribute not.href,因为它限定了URL
//隐藏他人
$(“.changesections”).not($(this.attr(“href”)).hide();
//展示你想要的。
$($(this.attr(“href”).show();
});
.changesections{display:none;}
#第1节{显示:块;}
/*下面只是为了说明这种变化*/
#第1节a{颜色:红色;}
#第2节a{颜色:蓝色;}
#第3节a{颜色:绿色;}

我会使用一些CSS来帮助您,正如您所命名的链接一样,我会使用链接,这也可能给您带来一些小的SEO好处。然后我会直接隐藏和显示,而不是更改DOM

$(“.changesections a”)。在(“单击”)上,函数(e){
//获取arribute not.href,因为它限定了URL
//隐藏他人
$(“.changesections”).not($(this.attr(“href”)).hide();
//展示你想要的。
$($(this.attr(“href”).show();
});
.changesections{display:none;}
#第1节{显示:块;}
/*下面只是为了说明这种变化*/
#第1节a{颜色:红色;}
#第2节a{颜色:蓝色;}
#第3节a{颜色:绿色;}


它们有相同的类,但ID不同。哦!哎呀。我明白你的意思了,谢谢!这可能是我的问题。修复了多个类似的ID虽然你不必关闭
标记,但如果你这样做可能会有所帮助,这样在编写的HTML中出现错误时更容易识别,并使代码更可读;尤其是使用自动缩进时(例如在代码段编辑器上使用“整洁”功能,或在VS代码或其他IDE中格式化)。“我正在尝试…用另一个div替换整个div”-为什么?为什么不显示/隐藏现有元素而不是从文档中删除它们?请花点时间制作一个工作代码段,不要链接到外部源代码,链接可能会过时。它们具有相同的类,但不同的ID。噢!哦!我明白你的意思,谢谢!这可能是我的问题。修复了多个类似的ID虽然您不必关闭
标记,但这样做可能会有所帮助,这样在编写的HTML中出现错误时更容易识别,并使代码更具可读性;尤其是在使用自动缩进时(例如在代码段编辑器上使用“tidy”功能,或在VS代码或其他IDE中使用格式时)。“我正在尝试…用另一个div替换整个div"-为什么?你为什么不显示/隐藏现有元素而不是从文档中删除它们?请花点时间制作一个工作代码段,不要链接到外部源代码,链接可能会过时谢谢你,这也很好。隐藏/显示。我以前试过,但无法使其工作,但正如有人指出的,我有多个相似的ID。谢谢,这也很好。隐藏/显示。我以前尝试过,但无法使其工作,但正如有人指出的,我有多个相似的ID。