Javascript - 如果有东西然后呈现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript - 如果有东西然后呈现相关的知识,希望对你有一定的参考价值。

我正在尝试从JSON渲染选择列表。它工作正常,但当我尝试添加if以获得所选它失败。如果所选ID等于预定义的数字,则将select = select写入数组。

我得到的错误消息是“意外的令牌,如果”

var xmlhttp = new XMLHttpRequest();
var url = "roller.json";

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        myFunction(xmlhttp.responseText);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(response) {
    defRolle = 6;
    solSelect ="selected=selected";
    var arr = JSON.parse(response);
    var i;
    var out = "<select>";

    for(i = 0; i < arr.length; i++) {
        out += "<option value='"+
        arr[i].RolleID +
        "'" + if (arr[i].RolleID===defRolle) {return solSelect} +
        " name='"+
        arr[i].RolleNavn +
        "'>" +
        arr[i].RolleNavn +
        "</option>";
    }
    out += "</Select>";
    document.getElementById("endreRolle").innerhtml = out;
}
答案

试试这个吧

用三元运算符替换if条件,短而清晰

    var xmlhttp = new XMLHttpRequest();
var url = "roller.json";

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        myFunction(xmlhttp.responseText);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(response) {
    defRolle = 6;
    solSelect ="selected=selected";
    var arr = JSON.parse(response);
    var i;
    var out = "<select>";

    for(i = 0; i < arr.length; i++) {
        out += "<option value='"+
        arr[i].RolleID +
        "'" + (arr[i].RolleID===defRolle ? solSelect : '') +
        " name='"+
        arr[i].RolleNavn +
        "'>" +
        arr[i].RolleNavn +
        "</option>";
    }
    out += "</Select>";
    document.getElementById("endreRolle").innerHTML = out;
}
另一答案

试试以下

function myFunction(response) {
    defRolle = 6;
    solSelect = "selected=selected";
    var arr = JSON.parse(response);
    var i;
    var out = "<select>";

    for (i = 0; i < arr.length; i++) {
        out += '<option value="' + (arr[i].RolleID === defRolle ? solSelect : "") + '" name="' + arr[i].RolleNavn + '">' + arr[i].RolleNavn + '</option>';
    }
    out += "</Select>";
    document.getElementById("endreRolle").innerHTML = out;
}

以上是关于Javascript - 如果有东西然后呈现的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 selenium 获取带有 javascript 呈现的源代码的 html

让 JavaScript 等到元素在页面上呈现,然后将 JS 对象绑定到它

提高 JavaScript 性能以呈现图像

JavaScript高级程序设计(第3版)| 学习笔记: 在HTML中使用JavaScript

测试标题

将源代码保存为为客户端呈现的 .txt 文件