2011-12-18 4 views
0

У меня есть около 8 IMG SRC тегов, которые начинаются, как это:JQuery + чтения множественного IMG SRC

<img src="" id="joinCityResponse" class="joinResponse"/> 

Если родственный вопрос правильно ответил тогда JQuery добавляет в поле Src. src="http://www.staticimages.co/dating/online-dating-index/join_tick.png"

В конце 8 вопросов у меня есть кнопка «Присоединиться», и мне нужно знать, правильно ли были ответы на все вопросы. например: иметь вышеуказанный набор URL-адресов src.

Как я могу использовать jQuery для проверки всех тегов img с классом «joinResponse», как указано выше?

+0

Что ты говоришь? jQuery не добавляет этого. Кроме того, jQuery не является аббревиатурой. – SLaks

+0

Кроме того, идентификаторы должны быть уникальными. – SLaks

+0

hm ... не было бы проще и лучше просто отслеживать, сколько из них верное с переменной или чем-то еще? –

ответ

2

Try:

var allAnswered = $('img.joinResponse').filter('[src="url"]').length == 8; 

Это позволит получить все изображения с joinResponse классом, а затем возвращать только те, которые имеют атрибут src набора для url значения (заменить url с вашим Png URL).

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

  1. Проверка правильности ответа на все вопросы (селектор работает быстрее).
  2. У вас не будет URL-адрес, закодированный в нескольких местах, поэтому код легче изменить. Если у вас есть одна переменная, содержащая этот URL-адрес, и вы используете его повсюду, то игнорируйте это :).
+1

'has' смотрит на потомков. –

+0

@ GabyakaG.Petrioli Вы правы - вместо этого используйте' filter() '. Благодаря! – kubetz

+0

поэтому используется при использовании фильтра с параметром функции для сложных проверок, которые я забыл, на самом деле принимает селекторы как параметр .. * Обновление моего собственного также .. * –

0

Что-то вроде этого?

var allSet = true; 
$('img.joinResponse').each(function() { 
    if(!$(this).attr('src')) { 
     allSet = false; 
    } 
}); 
// allSet now contains whether all images with the class "joinResponse" have an src attribute that is set to a non-empty string 

Не является наиболее эффективным, поскольку он не остановится, как только он находит один из таких не-Src тег изображения, но если есть только 8 теги изображений, это должно быть достаточно.

1

Вы можете использовать

var responses = $('.joinResponse'); 
if (responses.length === responses.filter('[src$="join_tick.png"]').length)){ 
    // all are correct 
} 

Это будет проверять, если все .joinResponse элементы имеют src, который заканчивается join_tick.png

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