2

我有一个像下面这样的元素。我想删除里面存在的块引用并用它的 innerHTML 替换它们

 <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
     <blockquote style="margin-right: 0px; margin-left: 40px; border: none; padding: 0px;">HTML</blockquote>
     <blockquote style="margin-right: 0px; margin-left: 40px; border: none; padding: 0px;">Java</blockquote>
 </blockquote>

 <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
     HTML<br>
     Java<br>
 </blockquote>

我怎样才能做到这一点?我知道一种通过创建另一个节点(如 span/div)然后替换 . 但我不想添加任何其他元素,只想要它的 innerHTML 元素。任何帮助深表感谢!

4

2 回答 2

0

你的意思是这样的:

document.getElementById("your-element").innerHTML = "HTML<br>Java<br>";

或者,如果您想附加:

document.getElementById("your-element").innerHTML += "HTML<br>Java<br>";

注意:覆盖innerHTML元素可能会导致问题。例如,如果您有onclick活动。看更多:

于 2013-02-28T10:42:51.070 回答
0

如果你可以使用 jquery,你可以这样做:

$('blockquote > blockquote').each(function() {
  var text = $(this).text();
  $(this).after(text + '<br />');
  $(this).remove();
});

小提琴示例:http: //jsfiddle.net/cjsuV/

对于 YUI DOM,您可以使用:

YUI().use('node', function(Y) {
  var blockQuotes = Y.all('blockquote > blockquote');
  blockQuotes.each(function (blockQuote) {
    var textNode = document.createTextNode(blockQuote.get('innerHTML'));
    var brNode = document.createElement('br');
    blockQuote.insert(brNode, 'after');
    blockQuote.insert(textNode, 'after');
    blockQuote.remove();
  });
});

小提琴示例:http: //jsfiddle.net/cjsuV/4/

于 2013-02-28T10:31:29.510 回答