JQuery цикл по объекту и искать заголовок, но пропустить другие - PullRequest
0 голосов
/ 28 апреля 2011

Я учу себя JS и Jquery, и я все еще борюсь с тем, как эффективно использовать $ для циклического прохождения объекта и извлечения необходимой мне информации.

У меня есть таблица со значком флага иназвание, описывающее то, что я хочу поставить в конце строки.Тем не менее, иногда есть другие значки, которые я должен игнорировать.Поэтому я ищу «flag» в URL и, если он существует, я устанавливаю innerHTML от 2-й до последней ячейки в «title».

Как вы можете видеть ниже, мне пришлось создать декремент VAR y, чтобы не пропускать его.в следующую строку с «заголовком», если я столкнусь со значком без флага.

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

<td>11:44pm</td><td><a href="/stats/visitors?site_id=66351439&amp;date=2011-04-27&amp;country=the+united+states"></a></td><td> <a class="custom" title="Comcast Cable" href="/stats/visitors?site_id=66351439&amp;date=2011-04-27&amp;ip_address=75.70.103.23">Comcast Cable</a></td><td><a href="/stats/visitors-actions?site_id=66351439&amp;date=2011-04-27&amp;session_id=228613269">1 action</a></td><td>10s</td><td width="100%"> &nbsp; </td><td></td>

Чтобы выглядеть так:

<td>11:44pm</td><td><a href="/stats/visitors?site_id=66351439&amp;date=2011-04-27&amp;country=the+united+states"></a></td><td> <a class="custom" title="Comcast Cable" href="/stats/visitors?site_id=66351439&amp;date=2011-04-27&amp;ip_address=75.70.103.23">Comcast Cable</a></td><td><a href="/stats/visitors-actions?site_id=66351439&amp;date=2011-04-27&amp;session_id=228613269">1 action</a></td><td>10s</td><td width="100%">Aurora, CO, USA</td><td></td>

Итак, мой вопрос - чтоэто лучший способ сделать всю эту процедуру.Вот ссылка на jsfiddle - http://jsfiddle.net/ukJxH/78/ - в 3:47 вы можете увидеть значок без флага.

var x = $('.tableborder tr img');
y = 1;
for (i = 0; i < x.length; i++) {
    var flagg = x[i].src;
    var pattn = /flag/gi;
    var loca = x[i].title;

    if (flagg.match(pattn) == "flag") {
        //$('td:nth-child(6)')[i + 14 + y].innerHTML = loca;
        $('#main :nth-child(i) td:nth-child(6)')[i].innerHTML = loc } else {
    y = y - 1;
}

}

Ответы [ 3 ]

0 голосов
/ 28 апреля 2011

Вы также можете использовать класс css для выбора только интересующих вас тегов img:

$(".tableborder tr img.flagImg").each(function() {
   ...
});

HTML тогда будет

<img title="Arvada, CO, USA" class="flagImg" src="http://static.getclicky.com/media/flags/us.gif">
0 голосов
/ 28 апреля 2011

Извините, но я не уверен, что слишком хорошо понимаю ваш вопрос. Однако следующий селектор выдаст вам все флаги в таблице

$('.tableborder tr img[src*="flag"]').each(function(){
   $(this)
    .closest('td')
    .nextAll('td:last')
    .html('Title from image : ' + $(this).attr('title'));
});

Это должно дать вам шанс пройти DOM и получить то, что вам нужно

Демонстрационная версия: http://jsfiddle.net/jomanlk/ukJxH/87/

0 голосов
/ 28 апреля 2011

Вы можете попробовать использовать каждый

Например:

$(".tableborder tr img").each(function() {
   var src = $(this).attr("src");
   var alt = $(this).attr("alt");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...