代码之家  ›  专栏  ›  技术社区  ›  streetparade

删除javascript中的<p class=“classname”>

  •  1
  • streetparade  · 技术社区  · 14 年前

    我怎样才能去掉这个 <p> 用javascript标记所有内容?

    假设我有这个html代码

    <p class="classname">
        <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span>
    </p>
    

    现在我需要用javascript替换/删除它,有人知道我如何删除它吗?

    3 回复  |  直到 14 年前
        1
  •  2
  •   Boris Guéry    14 年前

    如果你必须用普通的javascript来实现它,这将是痛苦的,因为internet explorer不支持getelementsbyclassname()(可能在较新的版本中?).

    var elems = document.getElementsByTagName('p');
    var elemsLenght = elems.lenght;
    for (var i = 0; i < elemsLenght; ++i) {
    {
      if (elems[i].className == 'classname')
      {
          elems[i].innerHTML = '';
      }
    }
    

    但如果可以的话,可以使用jquery、prototype、dojo等库/框架。

        2
  •  6
  •   Quentin    14 年前

    假设您不想更改标记:最简单的方法是使用库。例如,使用jquery:

    jQuery('.classname').remove();
    

    否则,需要获取对元素的引用,然后:

    el.parentNode.removeChild(el);
    

    获取元素的引用是一个棘手的部分。一些浏览器实现 getElementsByClassName ,但您必须自己编写或使用第三方实现。

    if (!document.getElementsByClassName) {
        document.getElementsByClassName = function (className) {
            /* ... */
        }
    }
    

    如果您愿意更改标记,请给元素一个ID,然后使用document.getElementByID获取对它的引用。

        3
  •  1
  •   Sarfraz    14 年前

    试试这个:

    <p id="someid">
        <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span>
    </p>
    
    function removeElement(id) {
      var d = document.getElementById('myDiv');
      var olddiv = document.getElementById(id);
      d.removeChild(olddiv);
    }
    
    
    removeElement('someid');
    

    如果需要,可以使用jquery

     $('p.classname').remove();