Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/99: Рейтинг темы: голосов - 99, средняя оценка - 4.70
Aego
16 / 16 / 0
Регистрация: 27.12.2009
Сообщений: 90
1

Перебор и изменение всех дочерних элементов (JQuery)

16.07.2010, 16:18. Просмотров 19201. Ответов 5
Метки нет (Все метки)

Есть конструкция типа
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="root">
<div class="div2">
<img />
<span class="comm">Комментариев<b>1</b></span>
<span class="seen">Просмотров<b>2</b></span>
<span class="stat"></span>
</div>
<div class="div2">
<img />
<span class="comm">Комментариев<b>1</b></span>
<span class="seen">Просмотров<b>2</b></span>
<span class="stat"></span>
</div>
<div class="div2">
<img />
<span class="comm">Комментариев<b>1</b></span>
<span class="seen">Просмотров<b>2</b></span>
<span class="stat"></span>
</div>
</div>
Нужно как-то для каждого отдельного div2 (все названия придуманы) получить значения <b> комментов и просмотров, поделить одно на другое и в зависимости от результата добавить картинку в innerHTML span'а. Как бы логичнее это реализовать?

Добавлено через 1 час 27 минут
Javascript
1
2
3
4
5
6
7
8
var blocks = $(".BlogsScrollElem");
blocks.each(function(i)
{
    var komm = this.$(".BlogsScrolltext b").html;
    var seen = this.$(".BlogsComentCount b").html;
    var stat = komm/seen;
    this.$("BlogsStatImg").append(stat);
});
Написал вот так, нет ли тут нарушений синтаксиса JQuery?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2010, 16:18
Ответы с готовыми решениями:

Перебор первых дочерних элементов
Есть меню. &lt;div id=&quot;top_menu&quot;&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#&quot;&gt;Новости&lt;/a&gt; ...

Перебор всех дочерних контролов программы
Здравствуйте. Есть форма, на форме расположены панели, табконтролы, лейблы и много всего. Хочу...

Подсветка активной ссылки и всех дочерних элементов
Здравствуйте, есть такой код: &lt;style&gt; #header-bottom{padding-top: 80px!important;}...

Изменить шрифт на сайте для всех дочерних элементов
Доброго времени суток! Можно ли как-то назначить шрифт (в общем случае, любое свойство) для всех...

Перебор открытых дочерних форм
У меня много дочерних форм создается динамически, поэтому доступ к ним не так-то просто получить....

5
Vovan-VE
13169 / 6555 / 1038
Регистрация: 10.01.2008
Сообщений: 15,070
16.07.2010, 16:32 2
Может, так?
Javascript
1
2
3
4
$('#root > .div2').each(function(o){
    var k = +$(o).find('.comm b').text() / +$(o).find('.seen b').text();
    $(o).find('.stat').append(k < 1 ? 'foo' : 'bar');
});
1
Aego
16 / 16 / 0
Регистрация: 27.12.2009
Сообщений: 90
16.07.2010, 17:00  [ТС] 3
Благодарю! Jquery только начал разбирать, а тут по работе задание =)
0
Aego
16 / 16 / 0
Регистрация: 27.12.2009
Сообщений: 90
19.07.2010, 12:24  [ТС] 4
Не выходит =( Я что-то недопонимаю в идеологии JQuery видимо.
Javascript
1
2
3
4
5
6
7
8
$(document).ready(function () {
    var i=0;
    $('.BlogsScrollElem').each(function(o){
        var CommentCount = $(o).find('.BlogsComentCount b').text();
        i++;
        $(o).find('.BlogsActivity').append(i);
    });
});
Такой код ставит во все .BlogsActivity единичку =( То же происходит и с задачкой в первом посте - во всех элементах одинаковые значения =(

Добавлено через 10 минут
Точнее, append выполняется для каждого блока - получается строка-последовательность значений BlogsComentCount, и она же одна(одинаковая для всех) строка присваивается всем спанам. Поправить бы >_<

Добавлено через 2 минуты
Все, разобрался. Вместо $(o) надо было использовать $(this)
0
Vovan-VE
13169 / 6555 / 1038
Регистрация: 10.01.2008
Сообщений: 15,070
19.07.2010, 15:02 5
Переменная CommentCount к чему вообще? О_о
0
Aego
16 / 16 / 0
Регистрация: 27.12.2009
Сообщений: 90
19.07.2010, 18:07  [ТС] 6
Криво вырезал нужный кусок хД
Вот итоговый код если интересно
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$(document).ready(function () {
    $('.BlogsItems').css('display','block');
    $('.BlogsScrollElem').each(function(){
        var CommentCount = +$(this).find('.BlogsComentCount b').text();
        var ViewsCount = +$(this).find('.BlogsViewsCount b').text();
        if (CommentCount==0 || ViewsCount==0){
            $(this).find('.BlogsActivity').append('<img src="./design/blogstate/0.gif" />');
        }
        else{
        var BlogsActivity = CommentCount/ViewsCount;
            if (BlogsActivity >= 0.5){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/5.gif" />');
            }
            if (BlogsActivity >= 0.4 && BlogsActivity<0.5){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/4.gif" />');
            }
            if (BlogsActivity >= 0.3 && BlogsActivity<0.4){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/3.gif" />');
            }
            if (BlogsActivity >= 0.2 && BlogsActivity<0.3){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/2.gif" />');
            }
            if (BlogsActivity >= 0.1 && BlogsActivity<0.2){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/1.gif" />');
            }
            if (BlogsActivity >= 0 && BlogsActivity<0.1){
                $(this).find('.BlogsActivity').append('<img src="./design/blogstate/0.gif" />');
            }
        }
    });
});
0
19.07.2010, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2010, 18:07

Перебор всех элементов EnumChildWnd
Всем привет. Вот столкнулся с такой проблемой: Вот пробую перебрать все элементы какого либо...

Перебор всех элементов json
Есть файл: { &quot;product1&quot;: { &quot;productName&quot;: &quot;first&quot;, &quot;productLink&quot;:...

Перебор всех графических элементов в Properties.Resources
У меня в Ресурсе (Properties.Resources) - 78 карт(картинки), как мне их перебрать? из базы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru