【问题标题】:how to do this , append html to other dropdown?如何做到这一点,将 html 附加到其他下拉列表中?
【发布时间】:2018-04-14 01:39:19
【问题描述】:

我会以简单的方式实现,我想在 if 里面的 if 中“返回”

if(condition){
    ...
       if(another_condition)
         {
           ...
               return;//I want this "return" return from the first if also
         } 
}

实际上我有复杂的脚本要做,我有从文档 docx 生成的这样的内容列表...:
第一章
一、title1
1)字幕1
2)字幕2
二.title2
1)字幕1
2)字幕2
3)字幕3
第 2 章 一、标题1 等等

首先我想用dropdown hover 风格分隔每一章的大标题。
我希望脚本将每个章节的内容附加到其他下拉列表中,并将每个大标题附加到另一个子下拉列表中,例如下拉悬停样式

enter image description here

【问题讨论】:

  • 嗯?不知道你在问什么。您要解决的实际问题是什么?
  • 它已经会...
  • return整个函数 返回,而不仅仅是一个 if 块。如果它对您不起作用,那么您的问题还有更多。例如,您没有展示的闭包。
  • 欢迎来到 Stack Overflow!请查看tour,环顾四周,并通读help center,尤其是How do I ask a good question?请使用runnable minimal reproducible example 更新您的问题,使用Stack Snippets ( [<>] 工具栏按钮)。

标签: javascript twitter-bootstrap if-statement return dropdown


【解决方案1】:

如果你想返回你所在函数的结果,只需像往常一样使用'return'。

如果您想避免在第一个 if 中执行其余代码,您可以设置一个外部变量,例如:

if (first condition) {
    var continue = true;
    if (second condition) {
        ...
        continue = false;
    }

    if (continue) {
        ....
    }
}

【讨论】:

    【解决方案2】:

    我猜你不是真的想说return,你只是想突破外层if的身体。

    不要那样做。相反,要么:

    1. 使用else,将外部if块的所有其余部分放在else块中,或者

    2. 将您的逻辑分解成更小的部分,将它们包装在函数中,然后组合这些函数。这通常不需要这种复杂的逻辑。

    else 示例:

    if (someCondition) {
        doThis();
        if (someOtherCondition) {
            doThat();
        } else {
            doSomethingElse();
        }
    }
    

    现场示例:

    function doThis() { console.log("doThis"); }
    function doThat() { console.log("doThat"); }
    function doSomethingElse() { console.log("doSomethingElse"); }
    
    function foo(someCondition, someOtherCondition) {
        if (someCondition) {
            doThis();
            if (someOtherCondition) {
                doThat();
            } else {
                doSomethingElse();
            }
        }
        console.log("foo done");
    }
    
    console.log("foo(true, false):");
    foo(true, false);
    console.log("foo(true, true):");
    foo(true, true);

    话虽如此:JavaScript 确实实际上让您在if 语句中使用定向break,这与许多其他语言不同。所以你可以这样做:

    // REALLY BAD PRACTICE
    outer:
    if (someCondition) {
        doThis();
        if (someOtherCondition) {
            doThat();
            break outer;
        }
        doSomethingElse();
    }
    

    如果someConditionsomeOtherCondition 都为真,则永远不会调用doSomethingElse

    现场示例:

    function doThis() { console.log("doThis"); }
    function doThat() { console.log("doThat"); }
    function doSomethingElse() { console.log("doSomethingElse"); }
    
    function foo(someCondition, someOtherCondition) {
        outer:
        if (someCondition) {
            doThis();
            if (someOtherCondition) {
                doThat();
                break outer;
            }
            doSomethingElse();
        }
        console.log("foo done");
    }
    
    console.log("foo(true, false):");
    foo(true, false);
    console.log("foo(true, true):");
    foo(true, true);

    但是....不要那样做。 :-)

    【讨论】:

    • (如果您在上面的 else 示例中看到 break outer;,请点击刷新。编辑错误。)
    • 实际上我的问题是我已将文档生成为带有上述内容列表的 html,我希望使用 javascript 以link 样式生成该内容列表...我在下拉列表中添加了 javascript我的问题我无法将章节的内容分成不同的下拉列表
    猜你喜欢
    • 2021-02-15
    • 2014-06-25
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2020-11-21
    相关资源
    最近更新 更多