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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老老老刘啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值