2015-11-12 3 views
0

Я пытаюсь вставить div с iframe перед комментарием HTML (это единственный уникальный элемент в этой позиции).Вставка элемента DIV перед комментарием HTML

Так что я, как комментарий: <!-- Comment --> и я хотел бы, чтобы вставить код, как это перед комментарием:

<div id="test"> 
    <noscript> 
     <iframe src="https://test.net" frameborder="0" scrolling="no" width="742" height="92"></iframe> 
    </noscript> 
</div> 

Я пробовал такие методы, как .append() и перед именем(), но без успеха.

Результат должен быть:

<div id="test"> 
     <noscript> 
      <iframe src="https://test.net" frameborder="0" scrolling="no" width="742" height="92"></iframe> 
     </noscript> 
    </div> 
<!-- Comment --> 

Большое спасибо за любую помощь!

+2

@Duane конечно вы можете выбрать комментарий! – void

ответ

0

Попробуйте использовать .filter() обратный элемент, где nodeType является 8

var div = "<div>abc</div>"; 
 

 
var comment = $("body").contents().filter(function() { 
 
    return this.nodeType === 8 
 
}); 
 

 
$(div).insertBefore(comment);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<body> 
 
<!-- Comment --> 
 
    </body>

0

HTML комментарий содержит это узел в иерархии DOM, и это NODETYPE свойство 8.

$(document).ready(function() { 
    var _html = '<div id="test">' 
    + '<noscript>' 
    + '<iframe src="https://test.net" frameborder="0" scrolling="no" width="742" height="92"></iframe>' 
    + '</noscript>' 
    + '</div>'; 

    $('body').contents().each(function (i, elem) { 
     if (elem.nodeType == 8 && elem.data == " Comment ") { 
      $(_html).insertBefore(elem); 
     } 
    }); 

}); 

Так пройти через все комментарии находят тот, который вы хотите, и вставляете HTML перед этим узлом комментария.

Работа fiddle

Смежные вопросы