为什么这段 js 出不了我想要的结果呢?

2016-10-17 08:17:19 +08:00
 starvedcat

我现在需要用 js 处理一段以字符串形式输入的 html 。我发现下面这段程序无法打印出我要的结果,研究了好久实在看不出哪里有问题,特来求助!

<html>

<head>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>

<body>
<script>
var str = '<html><head></head><body><h1 id="myclass">content</h1></body></html>';
var doc = $.parseHTML(str);
var title = $(doc).find('#myclass');
alert($(title).html());
</script>
</body>

</html>
</html>
3616 次点击
所在节点    JavaScript
27 条回复
murmur
2016-10-17 10:10:09 +08:00
@kingze1992 这我感觉反倒是个好习惯,对于 jquery 这种超大众库以后肯定是蹭 cdn 的,哪里有用自己流量刷静态资源的
kingze1992
2016-10-17 10:13:31 +08:00
@murmur 自己平时练习没必要用 cdn 吧?我打开的时候要等三秒左右加载,影响个人心情。
tonghuashuai
2016-10-17 10:28:30 +08:00
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body>
<script>
var str = '<html><head></head><body><h1 id="myclass">content</h1></body></html>';
var doc = $.parseHTML(str);
var title = doc.find('#myclass');
alert(title.html());
</script>
</body>

</html>


看第 9 、 10 行, doc 和 title 已经是变量(看前面的 var ),直接用就可以,$(doc) 这种用法感觉你 jQuery 用混乱了,建议先写原生 js ,明白其中的原理以后再用框架。


现在大量使用 jQuery ,导致很多新手只知道 $('#id') 而不知道 document.getElementById('id')。
quxiangxuanqxx
2016-10-17 10:43:15 +08:00
@murmur 开发环境和生产环境不一样啊,这并不是一个好习惯。
murmur
2016-10-17 10:47:15 +08:00
@quxiangxuanqxx
开发系统和生产环境当然越接近越好 最多域名、硬件配置不一样
以前是一个网站全相对资源,现在是几乎所有的东西都在别的服务器上,图片有图床,静态有 cdn ,数据源有一些服务器,然后一个登录还要给所有的域名上 cookie ,如果开发的时候图省事全放一个服务器上,等真拆分了有些本来早就应该发现的问题就暴露出来了
其实很多大的类库都有在线的 cdn 地址给你用
quxiangxuanqxx
2016-10-17 10:53:43 +08:00
@murmur 配置一下呀,上线自动切换成生产环境, dev 环境是可以设置的。这是比较基础的知识吧
starvedcat
2016-10-17 11:35:39 +08:00
@kingze1992 谢谢,我在本地的确是下载下来调试的,发到 V2EX 上的时候改成 CDN 了。。。。:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/313222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX