https://codepen.io/deepblue19...
源码采用首先遍历标签<abbr>,
然后将获取数据存入一个'关联数组',
(<abbr>的文本节点做key,<abbr>的一个属性title的值做数组的value)
我不能理解为何要设置一个数组,然后再从数组中取值,先存后取很有存在感?
于是我没采用书中方法,直接这样:
var abbr = document.getElementsByTagName("abbr");
if (abbr.length < 1) return false;
var dlist = document.createElement("dl");
for (var i = 0; i < abbr.length; i++) {
var definition = abbr[i].getAttribute("title");
var text = abbr[i].innerText;
var dtitle = document.createElement("dt");
var dtitle_text = document.createTextNode(definition);
dtitle.appendChild(dtitle_text);
var ddesc = document.createElement("dd");
var ddesc_text = document.createTextNode(text);
ddesc.appendChild(ddesc_text);
dlist.appendChild(ddesc);
dlist.appendChild(dtitle);
}
document.body.appendChild(dlist);
用某个IDE(HBuilder)的内置browser,成功了,但 chrome、firefox 都无法通过。
用Jslinter查错,提示:
if (abbr.length < 1) return false;
>> index.js: 'return' outside of function (2:23)
我一个菜鸟新人,也不知道怎么弄,于是就删除此条。
然后,就一切OK了~~
WHY????
return只能写在函数中