createElement与createElementWithClass

时间:2013-02-25 16:41:04

标签: javascript

我正在使用此脚本生成目录:

https://github.com/nanotube/generated_toc

我在这个测试页面上使用它。如您所见,创建的[返回顶部]链接非常难看:

http://www.utahrails.net/up/up-loco-features_toc-test.php

要将CSS样式应用于“[返回顶部]”链接,创建的div需要有一个类。

这有效:

  // create a "back to top" link
  if (back_to_top == 'on'){
    newdiv = document.createElement('div');
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>";
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling);

但事实并非如此。 ToC中的内容消失,所有链接都消失了:

  // create a "back to top" link
  if (back_to_top == 'on'){
    newdiv = document.createElementWithClass('div', 'back-to-top');
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>";
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling);

我是脚本新手,我无法看到问题所在。

2 个答案:

答案 0 :(得分:1)

我在文档对象上看不到createElementWithClass()方法的任何引用。如果您正在检查javascript错误控制台或调试控制台,它应该向您显示确切的错误。

请使用:

// create a "back to top" link
  if (back_to_top == 'on'){
    newdiv = document.createElement('div');
    newdiv.className = "back-to-top";
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>";
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling);

答案 1 :(得分:0)

没有(至少没有本机)createElementWithClass功能。使用

var newdiv = document.createElement('div');
newdiv.className = 'back-to-top';
…

(请参阅className propertyvar statement的文档)