Javascript DOM 编程艺术 Chap8 显示文献来源链接表

问题:1.把跳入下一循环的条件写错,  if (quoteChildren.length < 1) continue; 写成了  if (!quoteChildren.length < 1) continue;  导致末尾的elem.appendChild(superscript); 出现appendChild undefied  问题

2.无法在页面上成功显示文献来源链接,但function写的是对的,才发现html页面内容不太一致,在blockquote下没有p元素,导致var elem = quoteChildren[quoteChildren.length - 1]; 这一句不指示blockquote下的文本内容。

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Explaning the document object model</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1>What is the Dcument Object Model?</h1>
    <p>
      The <abbr title="World Wide Web Consortium">W3C</abbr>
      defines the <abbr title="Document Object Model">DOM</abbr> as:
    </p>
    <blockquote cite="http://www.w3.org/DOM/">
      <p>A platform of learning DOM</p> 
    </blockquote>
  <p>
    It is an <abbr title="Application Programming Interface">API</abbr>
    that can be used to navigate <abbr title="HyperText Markup Language">HTML</abbr>
    and <abbr title="eXtensible Markup Language">XML</abbr> documents.
  </p>


  <script src="displayAbbreviations.js" charset="utf-8"></script>
  <script src="displayCitations.js" charset="utf-8"></script>
  <script src="addLoadEvent.js" charset="utf-8"></script>
  </body>

</html>

display citations 

function displayCitations() {

  var quotes = document.getElementsByTagName("blockquote");

  for (var i = 0; i < quotes.length; i++) {
    if (!quotes[i].getAttribute("cite")) continue;
    var url = quotes[i].getAttribute("cite");
    var quoteChildren = quotes[i].getElementsByTagName('*');
    if (quoteChildren.length < 1) continue;

    var elem = quoteChildren[quoteChildren.length - 1];

    var link = document.createElement("a");
    var link_text = document.createTextNode("source");
    link.appendChild(link_text);
    link.setAttribute("href", url);

    var superscript = document.createElement("sup");
    superscript.appendChild(link);
    elem.appendChild(superscript);
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值