无法附加html元素jquery

时间:2015-04-06 18:59:03

标签: javascript jquery html node.js

我试图让jquery将文本附加到div元素。我试图按照这个链接http://api.jquery.com/append/但它不适合我,我只看到你好,但测试的单词不会被附加。

这是html:

 <!DOCTYPE html>
 <html>
 <head>
   <meta charset="utf-8">
 </head>
 <body>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
   <script src="test.js"></script>
   <div class="container">
     <div class="inner">Hello</div>
   </div>
 </body>
 </html>

这是test.js,它与test.html位于同一目录中。

$(document).ready(function() {
 $('.inner').append("<p> Test </p>");
});

这是为html页面提供服务的节点服务器。

const fs = require("fs");
const http = require('http');

var page = fs.readFileSync('test.html');

http.createServer(function(req, res) {  
  if(req.method == 'GET' || req.url == '/') {
    res.writeHead(200, "OK", {'Content-Type': 'text/html'});
    res.write(page);
    res.end();
  }
}).listen(80);

1 个答案:

答案 0 :(得分:1)

您的代码很好,但您的node.js服务器仅在路径test.html上提供/。只有您明确发送的文件才可供浏览器使用,因此HTML页面将无法加载test.js。为此文件添加else if(并更改内容类型):

const fs = require("fs");
const http = require('http');

var page = fs.readFileSync('test.html');
var testjs = fs.readFileSync('test.js');

http.createServer(function(req, res) {  
  if(req.method === 'GET' && req.url === '/') {
    res.writeHead(200, "OK", {'Content-Type': 'text/html'});
    res.write(page);
    res.end();
  } else if(req.method === 'GET' && req.url === '/test.js') {
    res.writeHead(200, "OK", {'Content-Type': 'application/javascript'});
    res.write(testjs);
    res.end();
  }
}).listen(80);

另请注意:

  • ||现在是&&,因为以前任何 GET请求都会有 满足第一个条件。

  • ==现在是=== - 在大多数情况下(包括此情况),最好使用===或严格相等。如果您有兴趣,请更多here