Jquery - заменить конкретную строку в HTML - PullRequest
0 голосов
/ 10 ноября 2011

У меня проблема с iframes и идентификаторами.

В настоящее время у меня есть Iframe, к которому не привязан идентификатор, так как он создан другими веб-сайтами javascript. Поэтому я быстро написал сценарий Jquery для предоставления идентификаторов Iframes при загрузке страницы, и он успешно работал. Проблема, однако, в том, что он применяет идентификатор ко ВСЕМ фреймам на странице, а не к тому, который мне нужен.

Это то, что у меня есть.

<script>
 $(document).ready(function () {
$("iframe").attr({ 
  id: "iframeid1"
});
});</script>

Есть ли метод с Jquery для "поиска и замены" чего-то определенного на странице? Например

Поиск:

<iframe allowtransparency="true" frameborder="0" scrolling="no" width="160" height="600"

Заменить на:

<iframe id="iframeid1" allowtransparency="true" frameborder="0" scrolling="no" width="160" height="600"

Любая помощь приветствуется! Заранее спасибо!

Ответы [ 5 ]

1 голос
/ 10 ноября 2011

если iframe заключен в div с идентификатором, чем вы можете сделать:

<script>
 $(document).ready(function () {
$("#divID iframe").attr({ 
  id: "iframeid1"
});
});</script>
1 голос
/ 10 ноября 2011

Если вы знаете, что это фрейм nth на странице:

$("iframe")[n].setAttribute('id', 'iframe1');

РЕДАКТИРОВАТЬ: Вы также можете использовать селекторы атрибутов:

$("iframe[allowtransparency=true][frameborder=no][etc=etc]").attr({id: 'iframe1'});
1 голос
/ 10 ноября 2011

Зависит от того, есть ли уникальный способ найти нужный фрейм.Например, это единственный с шириной = 160 и высотой = 600?Или это всегда X-й фрейм на странице?Всегда ли он расположен в одном и том же месте на странице?

Вот несколько запросов в качестве примеров для всех 3 сценариев:

// if the width/height combination is unique...
var iframe = $('iframe[width=160][height=600]');

// if it is always, say, the 3rd iframe on the page
var iframe = $('iframe:eq(2)'); // 0-based index

// if it is always the only iframe in a div with an id of "iframeContainer"...
var iframe = $('#iframeContainer').find('iframe');

Затем вы можете установить атрибут, как вы сказали:

iframe.attr('id', 'iframeid1');
0 голосов
/ 10 ноября 2011

Если вы знаете, где находится ваш iframe, вы можете получить его по индексной позиции.

Если у вас есть 4 iframe на странице, и вы ищете третий (относительно DOM), выможно сделать это:

$("iframe").get(3).attr({ 
  id: "iframeid1"
});
0 голосов
/ 10 ноября 2011

Вы можете использовать селекторы, чтобы найти тег iframe с определенными атрибутами.Но вы должны иметь возможность однозначно идентифицировать конкретный iframe, который вы хотите, из значений атрибутов, а не поиска HTML.

Например:

$('iframe[width="160"][height="600"]').attr("id", "iframeid1");

Это позволит выбрать теги iframe с шириной = 160и высота = 600.При необходимости вы можете добавить больше атрибутов для уникального выбора вашего конкретного iframe.

Возможно, лучшим вариантом будет использование структуры DOM вокруг iframe, чтобы определить, какой из них вы хотите.Вы можете использовать идентификаторы родительских объектов, упорядочение тегов и т. Д., Что бы ни помогало однозначно идентифицировать тот, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...