Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
动态jQuery语句_Jquery - Fatal编程技术网

动态jQuery语句

动态jQuery语句,jquery,Jquery,我有一个jQuery语句: $(currentEle).parent().parent("li").next().click() 其中currentEle是li元素 如果语句$currentEle.parent.parentli.next的这部分返回null,我想在语句中添加一个.parent.parentli 例如:$currentEle.parent.parentli.parent.parentli.next.click,依此类推。 我添加了一个HTML列表,使事情更加清楚。从列表中,如

我有一个jQuery语句:

 $(currentEle).parent().parent("li").next().click()
其中currentEle是li元素

如果语句$currentEle.parent.parentli.next的这部分返回null,我想在语句中添加一个.parent.parentli

例如:$currentEle.parent.parentli.parent.parentli.next.click,依此类推。 我添加了一个HTML列表,使事情更加清楚。从列表中,如果currentEle被设置为表示E的li,我想选择列表中的下一个元素,即“F”$currentEle.parent.parentli.Next2将为null,因此$currentEle.parent.parentli.parentli.parentli.parentli将执行此任务。那么,我如何让它更通用呢

 <ul>
        <li>A</li>
        <li>B
            <ul>
                <li>C
                    <ul>
                        <li>D
                            <ul>
                                <li>E</li>
                            </ul>
                        </li>
                    </ul>
                </li>
                <li>F</li>
            </ul>
        </li>
    </ul>
最新答复:

为了简化代码,我在eLi中添加了一个id

jQuery:

HTML:

最新答复:

为了简化代码,我在eLi中添加了一个id

jQuery:

HTML:


我想你的意思是

function main(){
    var curr = $(currentEle);

    while (getParent(curr) != null){
        curr = getParent(curr);
    }

    getParent(curr).next().click();
}


function getParent(element){
    if (element.parent().length > 0 && element.parent().parent('li').length > 0){
        return element.parent().parent('li');
    }
    return null;
}

我想你的意思是

function main(){
    var curr = $(currentEle);

    while (getParent(curr) != null){
        curr = getParent(curr);
    }

    getParent(curr).next().click();
}


function getParent(element){
    if (element.parent().length > 0 && element.parent().parent('li').length > 0){
        return element.parent().parent('li');
    }
    return null;
}

我认为您真正想要的是一种方法,由li过滤以查找祖先列表项:

$(currentEle).parents("li").last().next().click();

这样,您就不必手动检查每一个级别。

我认为您真正想要的是一种方法,通过li过滤以查找祖先列表项:

$(currentEle).parents("li").last().next().click();

这样您就不必手动检查每个级别。

如果$currentEle.parent.parentli.next.click返回null,则$currentEle.parent.parentli.parentli.parentli.parentli也将返回null null null的父级将为null'@Sector。null的父项是异常。。。不null@gdoron在这个问题的jQuery代码中没有:@Olmar,我正在进行下一个/上一个树遍历,该树是从一个HTML列表构建的,明白了吗。编辑后我更新了答案。如果$currentEle.parent.parentli.next.click返回null,则$currentEle.parentli.parentli.parentli.parentli也将返回null。null的父项将为null'@Secator。null的父项是异常。。。不null@gdoron在这个问题的jQuery代码中没有:@Olmar,我正在进行下一个/上一个树遍历,该树是从一个HTML列表构建的,明白了吗。我在你编辑后更新了答案。反过来,也就是从F回到e怎么样?@AlSiddharth。这是另一个问题。但规则是什么?如果$currentEle.prev.val!=null{如果$currentEle.prev.childrenul.length>0{/$currentEle.children.children[$currentEle.prev.children.lastli.children.lastli.children.click;}否则{$currentEle.prev.click;}@AlSiddharth。请用这个新问题打开一个新的线程。相反的,即从F返回到e如何?@AlSiddharth。这是另一个问题。但是规则是什么?如果$currentEle.prev.val!=null{if$currentEle.prev.childrenul.length>0{/$currentEle.childrenul.children[$currentEle.prev.children.lastli.children.last.click;}其他{$currentEle.prev.click;}}}@AlSiddharth。请用新问题打开一个新线程。