节点中的jquery和jsdom

时间:2017-07-30 15:02:42

标签: jquery node.js jsdom

我在nodejs(jsdom)中遇到jquery问题:

[main]

    $.get('xxx').then(function(xxx) {
    ...

$ is not defined

错误:

html += '<td><input class="case" type="checkbox"/></td>';
html += '<td><input type="text" data-type="productCode" name="pro[]" id="itemNo_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>';
html += '<td><input type="text" data-type="productName" name="des[]" id="itemName_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>';
html += '<td><input type="text" name="price[]" id="price_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';
html += '<td><input type="text" name="qty[]" id="quantity_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';
html += '<td><input type="text" name="sub_total[]" id="total_'+i+'" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>';

我希望通过jquery访问这个房子 错误在哪里?

1 个答案:

答案 0 :(得分:0)

问题是你需要在服务器端使用jQuery,所以你的客户端不知道$是什么。要解决这个问题,你需要注入jQuery,有很多方法可以做到这一点,其中一个就是使用CDN。

请参阅以下代码:

const dom = new JSDOM(`
  <!DOCTYPE html>
  <html>
    <body>
      <p>Hello world</p>
    </body>
    <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
    <script>
      // Use jQuery here.
    </script>
  </html>
`);