X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> взять информацию из div с помощью JS
Sasha_Live
Sasha_Live
Topic Starter сообщение 4.3.2013, 19:28; Ответить: Sasha_Live
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 253
Регистрация: 14.6.2009
Поблагодарили: 54 раза
Репутация:   14  


Необходимо реализовать следующее: в одном месте страницы CMS выводит цену в рублях, в другом необходимо ее вывести в долларах. Необходимо вытащить с помощью JS число из одного блока, затем умноженное на курс вывести в другом. JS не знаю, попытки разобраться самостоятельно ни к чему не привели.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 4.3.2013, 19:31; Ответить: devuser
Сообщение #2


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


Html
<div id="ru_price">1000</div> рублей
<div id="us_price">31</div> долларов


JavaScript
var ru_price = document.getElementById('ru_price').innerHTML;
var us_price = ru_price / 32;

document.getElementById('us_price').innerHTML = us_price;



Вот так правильно
http://d1.news-more.ru/sasha_live/index.html демонстрация

Сообщение отредактировал devuser - 4.3.2013, 19:38


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Serious_Andy
Serious_Andy
сообщение 4.3.2013, 19:32; Ответить: Serious_Andy
Сообщение #3


Участник
***

Группа: User
Сообщений: 176
Регистрация: 10.9.2010
Поблагодарили: 25 раз
Репутация:   1  


дайте url либо код страницы
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sasha_Live
Sasha_Live
Topic Starter сообщение 4.3.2013, 20:38; Ответить: Sasha_Live
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 253
Регистрация: 14.6.2009
Поблагодарили: 54 раза
Репутация:   14  


devuser, забыл уточнить, на сайте имеем вот такой код:
<div class="eshop-item-detailed__custom-field">
<div class="eshop-item-detailed__custom-field-name">цена :</div>
<div class="eshop-item-detailed__custom-field-value">466045 </div>
</div>


div'ов с таким классом несколько. Проблема из-за этого и возникает. как правильно вытащить отсюда число?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 4.3.2013, 21:13; Ответить: devuser
Сообщение #5


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


Sasha_Live, добавьте к нужному id="ru_price" и по этому ID получайте к нему доступ.
id не должны пересекаться, должны быть уникальными в рамках HTML-документа

То есть у вас должно получиться что-то типа

<div class="eshop-item-detailed__custom-field">
<div class="eshop-item-detailed__custom-field-name">цена :</div>
<div class="eshop-item-detailed__custom-field-value" id="ru_price">466045</div>
</div>


Тогда через JS вы сможете вытащить цену таким кодом
var ru_price = document.getElementById('ru_price').innerHTML;


Сообщение отредактировал devuser - 4.3.2013, 21:14


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sasha_Live
Sasha_Live
Topic Starter сообщение 4.3.2013, 21:21; Ответить: Sasha_Live
Сообщение #6


Бывалый
****

Группа: User
Сообщений: 253
Регистрация: 14.6.2009
Поблагодарили: 54 раза
Репутация:   14  


devuser, нет возможности прописать id. пересекаются не id, а классы, а они могут. Пробовал сделать через document.getElementsByClass вроде работает, но как правильно вытащить число понять не могу.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 4.3.2013, 21:29; Ответить: devuser
Сообщение #7


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


Тогда нужно смотреть урл
Возможно на jQuery (если библиотека подключена) сделать проще


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 5.3.2013, 3:42; Ответить: tszyan
Сообщение #8


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


Sasha_Live,
Хорошо бы увидеть весь участок HTML, в т.ч. ту часть, где необходимо установить цену в долларах. А также понимать - нужно ли Вам проставить такую цену для всех блоков с одинаковыми классами или для одного конкретного. Тогда ответить было бы очень быстро, приведя несколько строк кода.
(Sasha_Live @ 4.3.2013, 21:21) *
но как правильно вытащить число понять не могу

В чем сложность? Читается как строчка? parseInt/parseFloat(запятую не парсит)? Или вручну распарсить (если есть запятые или пробелы между цифрами) - регуляркой меняем такие символы на то, что нам надо и используем те же самые parseInt/parseFloat.
(Sasha_Live @ 4.3.2013, 21:21) *
document.getElementsByClass

Не совсем кроссбраузерное решение получится, тогда надо использовать это - http://javascript.ru/unsorted/top-10-funct...elementsbyclass
Но лучше, как советует devuser - сразу взять jQuery - сэкономите кучу времени и нервов.

Далее по самому вопросу, если преобразовать надо все цены, то алгоритм простой:
1. Ищем все элементы с классом рублевых цен
2. Для каждого найденного элемента:
а) читаем цену в рублях
б) ищем ближайший общий с элементом долларовых цен родитель.
в) по имени класса элемента с долларовыми ценами(или другому признаку) ищем элемент внутри родителя
г) высчитываем долларовую цену и устанавливаем значение найденному элементу.

Я бы конечно делал на php, но у Вас видимо ситуация не позволяет.

Приведу пример реализации алгоритма на jQuery:
<div class="product">
  <div class="ru_price">132</div>
  <div class="en_price"></div>
</div>


var kurs = 32;

$('.ru_price').each(function(){
  var ru_price = parseInt($(this).text());
  var parent = $(this).closest('.product');
  $('.en_price', product).text(ru_price / kurs);
});


Хотя правильнее(логичнее), наверное, было бы плясать от родителя - нашли всех родителей (корневые элементы продуктов), например по классу, а дальше уже для каждого продукта ищем рублевую цену и устанавливаем долларовую.

Сообщение отредактировал tszyan - 5.3.2013, 3:57
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыГде взять скрипт круговой индикатор выполнения
3 slavyn 450 14.12.2017, 22:55
автор: Caterpillar
Горячая тема (нет новых ответов) Проверка позиций сайтов в поисковых системах с помощью Positon.ru
Мониторинг продвижения сайтов
109 Positon 74543 15.11.2017, 11:59
автор: Positon
Открытая тема (нет новых ответов) Как заработать с помощью постинга на форумах
seo-mesto.ru - Зарабатываем оставляя посты на форумах!!!
10 Webfrilanser 2021 10.10.2017, 18:20
автор: PostBrigada
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыDIV-ная верстка PSD-макетов
Wordpress / Joomla / DLE
153 Ramos 45962 8.2.2014, 16:35
автор: Dimqa
Открытая тема (нет новых ответов) Заработок на рефералах с помощью лендинг-страницы
1 beginer 1880 27.2.2012, 9:56
автор: Silverspam


 



RSS Текстовая версия Сейчас: 17.12.2017, 2:56
Дизайн