比如
<div name="s1"></div>
<div name="s2"></div>
<div name="s3"></div>
<div name="s12"></div>
<div name="s23"></div>
<div name="s56"></div>
<div name="s2dd"></div>
<div name="s2sd"></div>
............有很多的无规则div,多到你也分辨不出来到底有多少了,,不能使用id,用getElementsByTagName,如何操作可以快速找到name是s12的div,点击弹出hello???
<div name="s1"></div>
<div name="s2"></div>
<div name="s3"></div>
<div name="s12"></div>
<div name="s23"></div>
<div name="s56"></div>
<div name="s2dd"></div>
<div name="s2sd"></div>
............有很多的无规则div,多到你也分辨不出来到底有多少了,,不能使用id,用getElementsByTagName,如何操作可以快速找到name是s12的div,点击弹出hello???
貌似是好方法,就是学了节点处理之后,感觉平常用的开发知识没必要加载个庞大的jquery库,
<div name="aa">I'm aa</div>
<div name="bb">I'm bb</div><script>
function $$(parentNode,tagName){
if(!tagName&&typeof(parentNode)=='string')tagName = parentNode;
if(typeof(parentNode)!='object')parentNode = document;
if(/^\w*\[[\w-]+=[\w-\/\\]+\]$/.test(tagName)){
var match = tagName.match(/^(\w*)\[([\w-]+=[\w-\/\\]+)\]$/,'$1'),
tagName = match[1],
filter = match[2].split('='),
nodes = parentNode.getElementsByTagName(tagName||'*'),
result = [];
for(var i=0,j=nodes.length;i<j;i++)
if(nodes[i].getAttribute(filter[0])==filter[1])result.push(nodes[i]);
return result;
};
for(var i=0,nodes = (parentNode.getElementsByTagName(tagName)||[]),j=nodes.length,res=[];i<j;i++)res.push(nodes[i]);
return res;
}
onload = function(){
alert($$('div[name=aa]')[0].innerHTML)
}</script></body></html>
getElementsByName只能获取表单元素...
var div = getElementsByName('s12', divs)[0];
function getElementsByName(name, containers){
var array = [];
for(var i in containers){
var elem = containers[i];
if(elem.name === name){
array.push(elem);
}
}
return array;
}