1
tudou527 2015-11-11 18:35:33 +08:00
这个报错不是已经很明确了吗?你要找 xxx.attributes 和 ooo.nodeType ,但是 xxx 和 ooo 不存在。
|
2
oxyflour 2015-11-11 18:38:36 +08:00
element = element[j];
说一下你想对 element 做什么奇怪的事情? |
4
aivier 2015-11-11 19:35:30 +08:00
|
6
isbase OP @oxyflour
@tudou527 @aivier 完整代码 function $(selector) { var str = selector.split(' '), temp, element = document; for (var i = 0; i < str.length; i++) {//ID if (str[i].indexOf('#') === 0) { temp = str[i].replace('#', ''); element = element.getElementById(temp); } else if (str[i].indexOf('.') === 0) {//Class temp = str[i].replace('.', ''); element = element.getElementsByClassName(temp)[0]; } else if (str[i].indexOf('#') === -1 && str[i].indexOf('.') === -1 && str[i].indexOf('[') === -1) {//Tag element = element.getElementsByTagName(str[i])[0]; } else if (str[i].indexOf('[') === 0 && str[i].indexOf('=') === -1) {//属性 temp = str[i].replace('[', '').replace(']', ''); for (var element = element.getElementsByTagName('*'), j = 0; j < element.length; j++) { if (element[j].hasAttribute(temp) === true) { element = element[j]; } } } else {//属性值 temp = str[i].replace('[', '').replace(']', ''); temp = temp.split('='); element = element.getElementsByTagName('*'); var l = element.length; for (var j = 0; j < l; j++) { if (element[j].attributes[temp[0]] != undefined && element[j].attributes[temp[0]].value === temp[1]) { element = element[j]; } } } } return element; } |
7
xwartz 2015-11-11 22:21:01 +08:00
= = 打个断点就可以查看哪里不对啊。。这样的代码格式,谁愿意看。。
|
9
Slienc7 2015-11-12 09:24:26 +08:00 via Android
可以 gist 贴代码
逐步 console.log 出来即可 |
10
isbase OP @xgowex
@tudou527 @oxyflour @xwartz JS CODE https://gist.github.com/isbaseby/774d363544c4abeadcd0 HTML CODE https://gist.github.com/isbaseby/14f5903b85ad51f78613 在 chrome console 输入 $("[class=baidu]") 就会出现错误 |