javascript - bool 值不是 javascript 中的函数

标签 javascript jquery

我有以下 javascript,我正在阅读一个单词并写出翻译,但我一直收到错误 boolean is not a function

function translate() {
var word = $("#prodId").val();

$.getJSON("api/translation?word=" + word,
            function (data) {

                $("#word").text(data.TranslatedWord);
            })
            .fail(
                function (jqXHR, textStatus, err) {
                    $("#word").text('Error: ' + err);
                });
                    }

下面的方法基本上是一样的,但是使用整数效果很好:

function find() {
       var id = $("#prodId").val();
       $.getJSON("api/products/" + id,
            function (data) {
                var str = data.Name + ': $' + data.Price;
                $("#product").text(str);
            })
            .fail(
                function (jqXHR, textStatus, err) {
                    $("#product").text('Error: ' + err);
                });
                    }

这是 HTML 的片段:

<div id="body">
    <div class="main-content">
        <div>
            <h1>All Products</h1>
            <ul id="products" />
        </div>
        <div>
        <label for="prodId">ID:</label>
        <input type="text" id="prodId" />
        <input type="button" value="Translate" onclick="translate();" />
        <p id="word" />
        </div>
    </div>
</div>

<script type="text/javascript">
$(document).ready(function () {
    // Send an AJAX request
    $.getJSON("api/products/",
              function (data) {
                  // On success, 'data' contains a list of products.
                  $.each(data, function (key, val) {

                      // Format the text to display.
                      var str = val.Name + ': $' + val.Price;

                      // Add a list item for the product.
                      $('<li/>', { text: str })
                      .appendTo($('#products'));

                  });

              });

});

    function find() {
        var id = $("#prodId").val();
        $.getJSON("api/products/" + id,
                  function (data) {
                      var str = data.Name + ': $' + data.Price;
                      $("#product").text(str);
                  })
        .fail(
            function (jqXHR, textStatus, err) {
                $("#product").text('Error: ' + err);
            });
    }

    function translate() {
        var word = $("#prodId").val();

        $.getJSON("api/translation?word=" + word,
                  function (data) {

                      $("#word").text(data.TranslatedWord);
                  })
        .fail(
            function (jqXHR, textStatus, err) {
                console.log(err);

                $("#word").text('Error: ' + err);
            });
    }




</script>

最佳答案

似乎在 chrome 中所有元素都有一个名为 translate 的 bool 属性,(例如 console.log(document.body.translate) 将显示 true 在 chrome 中,不知道为什么。

当您执行 onclick="translate();" 时,它只是在本地 DOM 对象范围内调用它(现在为什么不在窗口对象上调用它是另一个问题)

例如如果您将 translate 更改为 translate2 它应该可以工作,尽管听起来很奇怪

关于javascript - bool 值不是 javascript 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16045480/

相关文章:

jquery - jQuery 可以在经典 ASP 应用程序中使用吗?

javascript - 如何在单击时使用 jQuery 查找同级元素的值

javascript - 如何可靠地跟踪动态更新的 HTML 表格的底部?

javascript - document.getElementsByName() 不是 Firefox 中的函数

javascript - Firebase 避免多个客户端覆盖/更新同一节点(网络)

javascript - 将对象传递给函数但无法识别

jquery - 根据类向 href 添加 alt 属性

jquery - Jstree 状态插件不保存树状态

javascript - 使用javascript动态调整CSS

javascript - 使用 Chrome 用户脚本加载外部库 CSS