2016-08-10 1 views
0

Существует не хорошая структура HTML, с которой мне нужно работать, и список элементов, которые мне нужно выбрать, находится в пределах iframe. Проблема в том, что меня интересует только 2 типа div в пределах многих других div на том же уровне.Как указать несколько селекторов в iframe с помощью jQuery?

Я могу выбрать такой тип из фрейма, но только один момент времени:

$("#someIframe").contents().find(".class a img[src*='type1']") 

Но я не могу выбрать оба:

$("#someIframe").contents().find(".class a img[src*='type1'], .class a img[src*='type2']") -> does not work 

Проблема заключается в том, что мне нужно выберите первый, но я не знаю, какой из них является первым :) что-то вроде:

$("#someIframe").contents().find(".class a img[src*='type1'], .class a img[src*='type2']").first() 

ОБНОВЛЕНИЕ 1:

Я нашел другой путь. Я заметил, что те элементы, которые я не хочу, чтобы выбрать содержат конкретный текст:

<div>not listed</div> 

Однако, опять-таки найти правильный селектор будет проблемой, так как мне нужна противоположность этого ниже :)

$("#someIframe").contents().find(".someclass div:contains('not listed')").first() 
+0

Ничего плохого в подходе показано на рисунке, при условии, что оба селектора существуют во время запуска кода – charlietfl

+0

да, есть несколько элементов, которые выполняют оба селектора во время запуска кода. Это странно, но, возможно, я смогу обходить это -> оригинальное сообщение – JanH

+0

Дайте ему несколько логик в скрипте! –

ответ

0

Я понял это. Вот код, если кому-то нужен в будущем:

$("#someIframe").contents().find(".someclass").not($("#someIframe").contents().find(".someclass div:contains('not listed')").parent()).first() 

Это не приятно, но сама разметка не хорошо, так что я предполагаю, что это не хорошо :)