Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

关于看待问题的角度

  看到贴吧的一个坟贴被顶起来了,里面问的大概是“为什么document.getElementsByTagName("body")[0]要加[0]才能取到;HTML中只会有一个BODY吧?”。以前第一次看到这个问题时觉得它好没营养,现在再次看到这个问题有了一种完全不同的感觉。
  “因为getElementsByTagName是返回一个拟数组,所以取元素需要加下标”以前我是这么回答的,但是现在感觉这样的回答比问题本身还没营养。这个回答本身是正确的,假如提问者不知道这个,确实可以帮上忙。但是这样按部就班的回答有什么意义呢?做出这样的回答,不如丢出一句“百度一下你就知道”对提问者更有帮助。
  假如有个记者去采访一个成功的企业家,问其成功之道。如果企业家回答“因为我在某某年投资了某某东西,所以我成功了”这样的回答就好像问一个中彩票的为什么中彩票,它回答“因为我买了这个号码所以中彩票了”这些回答都是正确的,但都是废话,归根结底就是运气好而已。
  我不认为爱迪生的年代就只有他一个人在研究电灯,应该有很多人都在做同样的研究。如果他告诉别人这是努力的结果,当然我们不能否认这句话是正确的,但一样是废话。大家都努力过了,只是运气不如他好而已。做出这样无意义的回答,要么是没读懂问题,要么就是刻意曲解问题。另外,这里要向爱迪生道个歉,拿他举了个不太恰当的例子。

  回到贴吧上的那个问题吧。现在看那个问题的感觉和以前完全不同,脑子里瞬间就蹦出和楼主类似的疑问,这到底是为什么啊?为什么“getElementsByTagName”非要返回一个拟数组不可呢?W3C为什么要这样设计呢?然后又自问自答的想着这个方法是继承自XML的吧,XML中BODY是允许多个的吧?然后又联想到XML中什么东西是只有一个的呢?哦对,是根元素。这时又产生疑问,为什么XML中用“getElementsByTagName”获取根元素也返回一个拟数组呢?W3C不会蠢到没考虑过这个问题。于是这是又想到了XML中用“documentElement”来直接获取根元素可以规避这个问题。于是思路又回到HTML中,“document.body”不也一样嘛?然后又联想到HTML中的另一个唯一元素HEAD,“document.head”也可以取到HEAD吧。然后就开始思考“document.head”在低版本IE上的兼容性问题之类的问题了。总之,思绪就这样茫无边际地兜了一大圈之后得到了一堆杂乱无章的结果,这才意识到已经无法用三言两语回答这个问题了。
  当然我也可以直接回答出“为什么不用‘document.body’来直接获取呢?”这样的答案。但是如果没有其它描述说明,这个回答会让人有一种“我在问摩托车怎么开,你问我为什么不开奔驰?”的感觉。也许是问题的描述太简略的,从文字描述上无法了解提问者的意图。自然语言的揣摩不像微分方程似得一行表达式就能解出几页纸的唯一答案。鲁迅先生的文章每一篇都那么多字,但后人依然各种曲解。所以描述问题本身就是一件困难的事,更何况是这样简略的描述了。
  大概提问者需要的答案非常简单,是我一厢情愿地想多了。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^