Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Возможно ли такое на js (https://javascript.ru/forum/dom-window/74073-vozmozhno-li-takoe-na-js.html)

Stas1985 11.06.2018 07:22

Возможно ли такое на js
 
На странице есть теги звездочек
<i class="glyphicon glyphicon-star"></i>

Теги находятся в блоке
<div class="ot_ratting">
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
</div>

Возможно ли посчитать во всех блоках ot_ratting количество i и сложить их между собой чтоб получить общие количество на странице.

Stas1985 11.06.2018 08:03

Нашел что то подобное но оно не работает
<script>
$(function(){
$(".ot_testimonial").each(function(indx, el){
$(".count",el).text($('i',el).length)
});
});
 </script>

Вывести хочу так
<div class"count_all">Общий рейтинг голосов <span class="count"></span> </div>

рони 11.06.2018 09:34

Stas1985,
:-?
$(".count").text($(".glyphicon-star").length)

Stas1985 11.06.2018 09:38

Не могу понять почему у меня не работает:help:
Тут http://jsfiddle.net/CYEVf/32/ пробую все работает
<div class="ot_name"> Владимир</div>
<div class="ot_ratting"> 
<i class="glyphicon glyphicon-star"></i> 
<i class="glyphicon glyphicon-star"></i> 
<i class="glyphicon glyphicon-star"></i> 
<i class="glyphicon glyphicon-star"></i> 
<i class="glyphicon glyphicon-star"></i>
</div>
Общий рейтинг голосов: <span class="count"></span>

$(".count").text($(".glyphicon-star").length);

в чем проблема пока не разобрался

ruslan_mart 11.06.2018 09:41

$(function() {
   $(".count").text($(".glyphicon-star").length)
});

Stas1985 11.06.2018 09:50

<script>
$(function() {
   $(".count").text($(".glyphicon-star").length)
});
</script>
Общий рейтинг голосов: <span class="count"></span>

Без изменений пусто и все

рони 11.06.2018 09:57

Stas1985,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
 $(".count").text($(".glyphicon-star").length)
});
  </script>
</head>

<body>
<div class="ot_ratting">
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
<i class="glyphicon glyphicon-star"></i>
</div>
<div class"count_all">Общий рейтинг голосов <span class="count"></span> </div>
</body>
</html>

рони 11.06.2018 10:09

Stas1985,
вангую, звёздочек нет изначально на странице, тогда подсчитывать надо после функции, которая их создаёт, поставьте скрит вниз страницы, может поможет.

j0hnik 11.06.2018 14:21

А если и так не поможет

$(function() {
setTimeout(function(){
   $(".count").text($(".glyphicon-star").length);
},1000);
});


это называется костыль (скрипт должен начать идти и потихонечку прихрамывать)

Stas1985 12.06.2018 08:35

Вот так вот все работает хорошо
<script>
	$(function() {
	setTimeout(function(){
	   $(".count").text($(".glyphicon-star").length);
	     $(".count_coment").text($(".ot_list").length);
	},1000);
	});
</script>

А можно поделить .coun / .count_coment
Допустим .coun = 15, .count_coment = 3 и тут получить 5.
Заранее спасибо за ответы!

рони 12.06.2018 08:49

Цитата:

Сообщение от Stas1985
А можно поделить .coun / .count_coment

вам достаточно length поделить на length :-? :-? :-?

Stas1985 12.06.2018 09:45

Уточните пожалуйста по подробнее
Цитата:

вам достаточно length поделить на length
просто я в js полный ноль

рони 12.06.2018 09:51

Stas1985,
$(function() {
	setTimeout(function(){
	   $(".count").text($(".glyphicon-star").length);
	   $(".count_coment").text($(".ot_list").length);
       alert($(".glyphicon-star").length/$(".ot_list").length);
	},1000);
	});

Stas1985 12.06.2018 11:01

Сделал так
$(function() {
	    setTimeout(function(){
	       $(".count").text($(".glyphicon-star").length);
	       $(".count_coment").text($(".ot_list").length);
	       $(".count_comentall").text($(".glyphicon-star").length/$(".ot_list").length);
	    },1000);
	    });

И это то что надо:dance:
рони
Большое спасибо вам за помощь!

Stas1985 12.06.2018 13:15

Настроил рейтинг на сайте _https://lik-astana.kz/
<script>
	$(function() {
	    setTimeout(function(){
	       $(".count").text($(".glyphicon-star").length);
	       $(".count_coment").text($(".ot_list").length);
	       $(".count_comentall").text($(".glyphicon-star").length/$(".ot_list").length);
	    },1000);
	    });
</script>
<div class="count_block_coment" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<p>Рейтинг составлен на основе результатов голосования пользователей сайта www.lik-astana.kz</p>
<p>Общий рейтинг
<span class="count_comentall" itemprop="ratingValue"></span> из (<span class="count_coment" itemprop="reviewCount"></span> голосов).</p>
<meta itemprop="worstRating" content="1"/>
</div>

Но рейтинг не проходит проверку, может подскажите что не так.
Что означает эта строка },1000); не задержка ли это на срабатывания скрипта?
вот данные мой проверки в валедаторе
_https://search.google.com/structured-data/testing-tool?hl=ru#url=https%3A%2F%2Flik-astana.kz%2F

j0hnik 12.06.2018 13:27

Цитата:

Сообщение от Stas1985
Что означает эта строка },1000); не задержка ли это на срабатывания скрипта?

Да
Цитата:

Сообщение от Stas1985
https://search.google.com/structured-data/testing-tool?hl=ru#url=https%3A%2F%2Flik-astana.kz%2F

Это не для js сделали

Stas1985 12.06.2018 13:42

Цитата:

Это не для js сделали
можно ли как то решить это в моем случаи?

Stas1985 12.06.2018 13:44

Задержку убрал
<script>
	$(function() {
	       $(".count").text($(".glyphicon-star").length);
	       $(".count_coment").text($(".ot_list").length);
	       $(".count_comentall").text($(".glyphicon-star").length/$(".ot_list").length);
	    });
</script>

но все ровно не успевает сработать

рони 12.06.2018 14:58

Stas1985,
оставьте скрипт в том варианте, в котором он работал, и забейте на валидатор


Часовой пояс GMT +3, время: 23:49.