javascript - 没有给定json值时如何显示警告框

标签 javascript jquery json sparql

我已经使用 Json 在 HTML 页面中显示了 SPARQL 查询的结果,我的问题是当输入某个值并且查询不显示结果时它应该显示一个警告框。我的代码如下:

HTML

  <table id="results">
     </table>

查询脚本

      var query = [
            "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>",


  "PREFIX yago: <http://dbpedia.org/class/yago/>",
    "PREFIX type: <http://dbpedia.org/class/yago/>",
    "PREFIX prop: <http://dbpedia.org/property/>",
    "SELECT ?name ?runtime",
    "WHERE {",
    "?film rdf:type dbo:Film.",
    "?film dbp:name ?name.",
    "?film dbo:director dbr:Peter_Jackson.",
    "} GROUP BY ?name ?runtime"
            ].join(" ");
            alert("this query: [" + query + "]");
            var queryUrl = url + "?query=" + encodeURIComponent(query) + "&format=json";
            console.log(queryUrl);
            $.ajax({
                dataType: "jsonp",
                url: queryUrl,
                success: function (data) {
                    console.log(data);
                    // get the table element
                    var table = $("#results");

                    // get the sparql variables from the 'head' of the data.
                    var headerVars = data.head.vars;

                    // using the vars, make some table headers and add them to the table;
                    var trHeaders = getTableHeaders(headerVars);
                    table.append(trHeaders);

                    // grab the actual results from the data.
                    var bindings = data.results.bindings;

                    // for each result, make a table row and add it to the table.
                    for (rowIdx in bindings) {
                        table.append(getTableRow(headerVars, bindings[rowIdx]));
                    }
                    if (bindings.trim().length == 0) {
                        alert("empty");   //IF BINDING IS EMPTY DISPLAY ALERT BOX
                    }


                }
            }); 

至于现在,如果 bindings,它不会显示任何内容。是空的,它只显示trHeaders .

如果bindings,我怎样才能弹出一个警告框?为空或如果 <td>是空的? 希望这个问题得到理解。感谢您的宝贵时间。

最佳答案

您可以通过几种不同的方式执行此操作:

如果 bindings 是对象的常量,但有时可能为空:

if (data.results.bindings.length) {
    //exists
} else {
    alert('goes here');
}

如果 bindings 并不总是在服务器的响应中设置:

if (data.results.hasOwnProperty('bindings')) {
   //exists
} else {
    alert('goes here');
}

关于javascript - 没有给定json值时如何显示警告框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773696/

相关文章:

javascript - jQuery 是否有一种方法可以检查数组的所有值以查看它们是否满足某些条件?

jquery - 如何处理所有浏览器中的就绪事件和页面显示事件,以在按下后退按钮时提供帮助

Javascript dialog() 函数在我的 MVC 代码中不起作用

jQuery 与 json

javascript - 允许用户浏览 url,然后使用 javascript 获取最终 URL

javascript - html 元素属性和脚本值之间的数据绑定(bind)不同步

javascript - 如何一次选择一个元素?

json - Karate : How to set the Json value if object name contains period in an array

json - 获取未知 key 的内容

Javascript : Will a function call all callbacks for all functions that ever called it?