あなたのHTMLが複数のアイテムに追加されているのは、あなたが扱っているマークアップにiframeが存在するためです。
各iFrame(ガジェット、広告はiFramesと思われる)は、それぞれ<html></html>
と<body></body>
というタグを持つ完全なHTML構造を持っています。 .appendTo('body')
の場合、スクリプトは'body'
セレクタに一致する要素にコンテンツを追加します。
$('body')
よりも一意のセレクタを使用すると便利です。あなたがしたいかもしれないもの
ジェネリックbody
セレクタに加えて、他のユニークなセレクタのいくつかの並べ替えの$('body:first')
を使用してみてくださいです。あなたがコントロールしていないHTMLに依存しているので、これを少しだけプレイしなければならないかもしれません - GMスクリプトを任意のページで実行したいと思います - そのページの構造に制限されています。たとえば、:first
<body>
というタグが正しいと保証されるという保証はありません。
あなたが私に尋ねる場合、これを行うための確かな方法は、のすべての要素に対して繰り返すことです。$('body')
が返され、それぞれにIframeの親要素があるかどうかがわかります。このような
何か -
var selectedElement = '';
$('body').each(function(index,elem){
if ($(elem).closest('iframe').length){
selectedElement = $(elem);
}
});
if (selectedElement){
// appendTo(selectedElement);
}
出典
2012-05-12 14:02:20
Lix
私はappendToのようなものが必要でしょう: -/ –
'appendTo($( 'body')[0])' –