Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 找不到下一个元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 找不到下一个元素

Javascript 找不到下一个元素,javascript,jquery,html,Javascript,Jquery,Html,我希望在一个页面上有多个元素,当单击标题栏时,这些元素将切换下一个内容栏的可见性。所有内容范围的内容都隐藏在“文档准备就绪”上 当以整个类为目标时,内容切换起作用,但当尝试从单击的标题范围中以下一个内容范围元素为目标时,内容切换起作用 当我们试图操纵通过telerik radeditor输入的文本时,使用了特定的标记 HTML 您将上升一级,进入p元素,然后进入下一个元素(请参见下一个注释),但是。可折叠内容是该p的子元素,实际上是p元素的下一个()元素(因此过滤器也不匹配任何内容)next(

我希望在一个页面上有多个元素,当单击标题栏时,这些元素将切换下一个内容栏的可见性。所有内容范围的内容都隐藏在“文档准备就绪”上

当以整个类为目标时,内容切换起作用,但当尝试从单击的标题范围中以下一个内容范围元素为目标时,内容切换起作用

当我们试图操纵通过telerik radeditor输入的文本时,使用了特定的标记

HTML


您将上升一级,进入
p
元素,然后进入下一个元素(请参见下一个注释),但是
。可折叠内容
是该
p
的子元素,

实际上是
p
元素的
下一个()
元素(因此过滤器也不匹配任何内容)
next()
只返回下一个元素,然后应用过滤器查看它是否匹配

放下
parent()
并将
nextAll()
与选择器一起使用:

$(document).ready(function () {
    $('.collapsibleContent').hide();
    $('.collapsibleHeader').click(function (e) {
        $(this).nextAll('.collapsibleContent').toggle();
        e.preventDefault();
    });

    $('.collapsibleContent2').hide();
    $('.collapsibleHeader2').click(function (e) {
        $('.collapsibleContent2').toggle();
        e.preventDefault();
    });
});
JSFiddle:

您可以将
sibbins()
与相同的筛选器一起使用,但速度比
nextAll()
慢。如果每个匹配项恰好有多个匹配项,也可以添加
first()

e、 g


注:
nextall
sibbins()
parent().children()

您将上升一个级别,进入
p
元素,然后进入
next
下一个元素(见下一个注释),但是
.collapsablecontent
p
的子元素,

实际上是
p
下一个()
元素(因此过滤器也不匹配任何内容)
next()
只返回下一个元素,然后应用过滤器查看它是否匹配

放下
parent()
并将
nextAll()
与选择器一起使用:

$(document).ready(function () {
    $('.collapsibleContent').hide();
    $('.collapsibleHeader').click(function (e) {
        $(this).nextAll('.collapsibleContent').toggle();
        e.preventDefault();
    });

    $('.collapsibleContent2').hide();
    $('.collapsibleHeader2').click(function (e) {
        $('.collapsibleContent2').toggle();
        e.preventDefault();
    });
});
JSFiddle:

您可以将
sibbins()
与相同的筛选器一起使用,但速度比
nextAll()
慢。如果每个匹配项恰好有多个匹配项,也可以添加
first()

e、 g


注意:
nextall
兄弟姐妹()
parent().children()

next不起作用的原因是您使用的是
parent()

单击
回调函数中,您正在调用
$(this).parent()
。调用回调时,
$(this)
将是
.collapsableheader
,因此当调用
.parent()
时,它将返回
p
标记

要获取
.collapsablecontent
文件,必须调用
.children('.collapsablecontent')
,而不是
.next()

您的代码如下所示:

$(this).parent().children('.collapsibleContent').toggle();

jsiddle:

next不起作用的原因是因为您使用的是
parent()

单击
回调函数中,您正在调用
$(this).parent()
。调用回调时,
$(this)
将是
.collapsableheader
,因此当调用
.parent()
时,它将返回
p
标记

要获取
.collapsablecontent
文件,必须调用
.children('.collapsablecontent')
,而不是
.next()

您的代码如下所示:

$(this).parent().children('.collapsibleContent').toggle();

jsIDLE:

访问父级,然后访问.next()将获得下一段落元素,而不是内容。在这种情况下,没有必要打家长。您需要获取具有class.collapsablecontent的已单击元素的同级。在单击的元素上获取下一个元素也不会起作用,因为从技术上讲,标题后的下一个元素是一个中断标记。下面的方法可以实现这一目的:

$('.collapsableheader')。单击(函数(e){
e、 预防默认值();
$(this).sides('.collapsablecontent').toggle();

});访问父级,然后访问.next()将获得下一段落元素,而不是内容。在这种情况下,没有必要打家长。您需要获取具有class.collapsablecontent的已单击元素的同级。在单击的元素上获取下一个元素也不会起作用,因为从技术上讲,标题后的下一个元素是一个中断标记。下面的方法可以实现这一目的:

$('.collapsableheader')。单击(函数(e){
e、 预防默认值();
$(this).sides('.collapsablecontent').toggle();

});
函数
.next()
只查看起点后的一个同级元素。
.next()
函数只查看起点后的一个同级元素。解决方案与
nextAll()
相同(只是稍微慢一点)。如果知道方向,最好包括方向(
nextAll
prevAll
),如果可以:)@TrueBlueAussie你说得对,nextAll肯定更快。谢谢
nextAll
只需导航相邻DOM节点的子集。我认为
sides()
parent()一样。children()
。另外
nextAll
(和兄弟姐妹)比原始
parent()快。children()
:与
nextAll()
相同的解决方案(只是稍微慢一点)。如果知道方向,最好包括方向(
nextAll
prevAll
),如果可以:)@TrueBlueAussie你说得对,nextAll肯定更快。谢谢
nextAll
只需导航相邻DOM节点的子集。我认为
sides()
parent()一样。children()
。另外
nextAll
(和兄弟姐妹)比原始
parent()快。children()
:注意:
parent()。children(filter)
比使用
nextAll(filter)
慢得多:注意:
parent()。children(filter)
比使用
nextAll(过滤器)
慢得多:
$(this).parent().children('.collapsibleContent').toggle();