2013-12-23 4 views
0

У меня есть код jquery, который был настроен для выбора 'div' под названием wrap.Как выбрать div в jquery и заменить его iframe

Что я хочу сделать, это изменить выбранный «div» на «iframe» с идентификатором news.

Я пробовал несколько вещей и не смог заставить его работать. Ниже мой код

$('document').ready(function() { 
    var $wrap = $('#wrap'), 
     page = 1; 

    $('#next').on('click', function() { 
     getPage(++page); 
    }); 

    $('#prev').on('click', function() { 
     getPage(--page); 
    }); 

    var getPage = function (page) { 
     $wrap.load('proxy.php?page=' + page + ' #postsArea'); 
    }; 

    getPage(page); 

}); 

Ниже генерируемый HTML

<body> 
<div id="wrap"> 
</div> 
<button type="button" id="next">Next</button> 
<button type="button" id="prev">Previous</button> 
</body> 

Ниже то, что я хочу, чтобы изменить его

<body> 
<iframe id="news"> 
</iframe> 
<button type="button" id="next">Next</button> 
<button type="button" id="prev">Previous</button> 
</body> 
+0

Существует не один упоминание IFRAME в коде, так что вы пробовали? – Popnoodles

+1

Зачем вам это нужно? Вы можете просто загружать контент в div, как вы уже делаете. –

+0

вам нужно изменить запрос файла src в iframe, вы не можете просто загрузить его в iframe. Что вы здесь делаете, используя метод загрузки jq, а не iframe. –

ответ

3

«, что я хотите сделать, это изменить выбранный 'div' на 'iframe' с идентификационными новостями ».

Это как сделать это и указать ему URL-адрес, который вы хотите, в функции, которую вы написали.

var getPage = function (page) { 
    $("#news").replaceWith($('<iframe>', { 
     src:'proxy.php?page=' + page + ' #postsArea', 
     id:'news' 
    })); 
}; 

http://jsfiddle.net/2qSAD/

Хотя, как кто-то говорил, что было бы лучше использовать IFRAME в первую очередь. Если вы хотите скрыть его до тех пор, пока он вам не понадобится (возможно, вы используете div), вы можете это сделать.

<iframe id="news" style="display:none;"></iframe> 

JQ

var getPage = function (page) { 
    $("#news").prop('src', 'proxy.php?page=' + page + ' #postsArea').show(); 
}; 
+1

Большое спасибо за помощь. – Sabre

1

Попробуйте это:

document.getElementById('news').src = "proxy.php?page="+page+"#postsArea"; 
+0

Это не то, что было задано – Popnoodles

+0

@popnoodles. Тогда что было, если я могу спросить? –

+0

"то, что я хочу сделать, - это изменить выбранный 'div' на 'iframe' с новостями id." – Popnoodles

1

Использование src атрибут для изменения ifr AME источник

$('#news').attr('src', "proxy.php?page="+page+"#postsArea") 
+0

Благодарим за помощь – Sabre

1

Если вы хотите заменить полный элемент, я хотел бы предложить, чтобы прицелиться его родителей:

$("#mydiv").parent().html("<iframe>....</iframe>"); 

HTML() возвращает ВНУТРЕННЕЙ HTML элемента. Таким образом, внутренний родительский элемент является самим элементом.

+0

Благодарим за помощь. – Sabre

+0

Если вы это сделаете, вы уничтожаете братьев и сестер #mydiv – Popnoodles

+0

Правильно, это работает только в том случае, если mydiv является единственным ребенком. – dkellner

1

вы не могли бы использовать ReplaceWith JQ запрос ..

$("div#wrap").replaceWith('<iframe id="news" src=".."></iframe); 
+0

Благодарим за помощь. – Sabre

1

Попробуйте использовать outerHTML:

document.getElementById("wrap").outerHTML="<iframe id='news'></iframe>"; 

Ниже скрипку:

http://jsfiddle.net/uZsmq/

+0

Благодарим за помощь. – Sabre

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