代码之家  ›  专栏  ›  技术社区  ›  Geoff_S

关于javascript/html数据选项的if语句

  •  2
  • Geoff_S  · 技术社区  · 6 年前

    我试图在一个对象中附加结果作为datalist下拉列表中的选项,这是可行的,但问题是不是所有元素在对象中都有一个特定的级别,这会影响附加到列表中的结果。

    $("#returnedProducts").append($("<option/>",
                    {
                        "srindex": i,
                        "data-details": JSON.stringify(result[i]._source.name.family),
                        //I want to say if result[i]._source.fabric exists, then do this next line else, just move to "value"
                        "data-fabric":JSON.stringify(result[i]._source.fabric[1]),
                        "value": result[i]._source.category,
                        "html": result[i]._source.category,
                    }
            ));
    

    我怎样才能说“如果结果[I],只设置数据结构”_来源:织物存在,否则不设置并移到“值”?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Pointy    6 年前

    在对象初始值设定项中确实不能执行类似的操作,但如果在函数中组装options对象,则可以轻松地执行此操作:

    $("#returnedProducts").append($("<option/>", function() {
            var object = {
                    "srindex": i,
                    "data-details": JSON.stringify(result[i]._source.name.family),
                    "value": result[i]._source.category,
                    "html": result[i]._source.category,
                };
             if (result[i]._source.fabric) {
                object["data-fabric"] = JSON.stringify(result[i]._source.fabric[1]);
             }
             return object;
        )() ); // note that the function is called here
    
        2
  •  3
  •   Peter Van Drunen    6 年前

    {
        "srindex": i,
        "data-details": JSON.stringify(result[i]._source.name.family),
        "data-fabric": result[i]._source.fabric ? JSON.stringify(result[i]._source.fabric[1]) : undefined,
        "value": result[i]._source.category,
        "html": result[i]._source.category,
    }