javascript基础 获取属性并创建 2017年1月11日

来源:互联网 发布:淘宝客 开放接口 编辑:程序博客网 时间:2024/06/05 15:22
/** * Created by Administrator on 2017/1/11. */function displayCitatinons() {    if(!document.createElement || !document.createTextNode || !document.getElementsByTagName) return false;    var blockquote = document.getElementsByTagName("blockquote");    for(var i=0;i<blockquote.length;i++){        // 检测一下有没有cite属性 获取他的url        if(!blockquote[i].getAttribute("cite")) continue;        var url = blockquote[i].getAttribute("cite");        // 获取目标节点 即block标签的最后一个元素标签        var blockquoteChildren = blockquote[i].getElementsByTagName("*"); //取得bq块下所有的元素节点        if(blockquoteChildren.length < 1) continue; //如果没返回元素节点数组 立马放弃 继续下次循环        var elem = blockquoteChildren[blockquoteChildren.length - 1]; //现在获取了bq块下的最后一个子元素节点        // 开始创建a标签        var link = document.createElement("a");        var link_text = document.createTextNode("source");        link.appendChild(link_text);        link.setAttribute("href",url);        // 创建sup标签包裹A标签 并把sup标签连接到目标标签后面        var sup = document.createElement("sup");        sup.appendChild(link);        elem.appendChild(sup);    }}

需要注意的一些事项

1
    var blockquoteChildren = blockquote[i].getElementsByTagName("*");        if(blockquoteChildren.length < 1) continue;        var elem = blockquoteChildren[blockquoteChildren.length - 1];

这里不用lastchild 而用比较复杂的筛选的原因是 你不能百分比确保 获取到的一定是元素节点 某些浏览器可能会认为是最后一个文本节点 也就是换行符 所以 获取节点一定要谨慎 去做一些确保的措施

0 0