【问题标题】:if/else statement to remove a select option in Jade Templateif/else 语句删除 Jade 模板中的选择选项
【发布时间】:2016-10-25 13:09:39
【问题描述】:

我是 Jade 的新手,我得到了在网页中创建选择选项的任务。一切似乎都很好,直到我得到一个空的选项元素,该元素是在下拉列表为空并且页面刷新时创建的。我想以某种方式删除这个空选项元素。我在这里浏览了大多数帖子,但似乎没有得到任何帮助。以下是我的 Jade 逻辑。

玉:

#remarksField
   h1#remarksHeader Remarks
   select#shortDesc
      option(value= "")= "---"
        each index in data
         if (index)
           option(value= index.id)= index.short_desc
         // else

不知道如何发布小提琴,因为它是大型代码的一部分,但我希望有人能在这里帮助我。

【问题讨论】:

    标签: javascript jquery node.js express pug


    【解决方案1】:

    第一个 option 标签后的额外缩进导致以下所有选项都位于第一个标签内。删除那个额外的缩进,它应该都可以工作:

    #remarksField
    h1#remarksHeader Remarks
    select#shortDesc
      option(value= "")= "---"
      each index in data
       if (index)
         option(value= index.id)= index.short_desc
       // else
    

    【讨论】:

    • 我已经尝试过了,但没有成功。我认为没有值的空对象存储在将 if 语句设置为 true 的索引中,从而创建了空选项。现在我需要做的是证明索引是否不为空或没有错误,如果是,那么不应该没有选项元素。这是越来越乏味的事情,因为我是在 Jade 上这样做的
    • 与其检查index 是否存在,不如尝试检查index.id 是否存在。如果没有更多信息,我无能为力。请将答案标记为正确以关闭问题
    【解决方案2】:

    添加占位符

    option(value="1" placeholder="Select")
    

    这样可以避免刷新时出现空白。

    【讨论】:

      【解决方案3】:

      删除 if 语句中“index”周围的括号。

      所以应该是这样的:

      if index

      您可以在此处找到有关 if 语句的更多信息 - http://jade-lang.com/reference/conditionals/

      【讨论】:

      • 根据文档,“它仍然是常规 JavaScript”,因此布尔表达式周围的括号很好
      • 啊,好吧,够公平的。
      猜你喜欢
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 2020-10-25
      • 2021-10-25
      相关资源
      最近更新 更多