Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2012, 01:05
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Проблема с elem.getElementsByClassName(className)
Доброго времени суток еще раз. В общем, замучался с таким кодом, почему-то при обращении по селекторам цсс, упорно возвращает обьект вместо числа.

<script>
  function ddd (){
    var elements = document.querySelectorAll('#allparam>.param input:first-child ');
  
  var rrr = 0 
    for (var i=0; i<elements.length; i++) {
      parseInt(elements[i].value, 10)
      alert(typeof(elements[i])+ typeof(rrr))
       rrr += elements[i].value 
    }
alert(rrr)
}



    function counter1(e, idd) {
        var val= parseInt(document.getElementById(idd).value, 10);
        var new_val= val + e;

        if (new_val>=50) {
            new_val=50
        }
        if (new_val <= -50){
            new_val= -50
        }
        document.getElementById(idd).value= new_val
            }



</script>

<div id="allparam">
        <div class="param">
        <input id="health" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'health')" /> <input type="button" value="-5" onclick="counter1(-5, 'health')" />
        <label for="health">Здоровье</label>
        </div>
        <div class="param">
        <input id="beauty" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'beauty')" /> <input type="button" value="-5" onclick="counter1(-5, 'beauty')" />
        <label for="beauty">Красота</label>
        </div>
        <div class="param">
        <input id="streng" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'streng')" /> <input type="button" value="-5" onclick="counter1(-5, 'streng')" />
        <label for="streng">Сила</label>
        </div>
        <div class="param">
        <input id="education" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'education')" /> <input type="button" value="-5" onclick="counter1(-5, 'education')" />
        <label for="education">Образованность</label>
        </div>
        <div class="param">
        <input id="smart" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'smart')" /> <input type="button" value="-5" onclick="counter1(-5, 'smart')" />
        <label for="smart">Интеллект</label>
        </div>
        <div class="param">
        <input id="social" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'social')" /> <input type="button" value="-5" onclick="counter1(-5, 'social')" />
        <label for="social">Социализированность</label>
        </div>
        <div class="param">
        <input id="many" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'many')" /> <input type="button" value="-5" onclick="counter1(-5, 'many')" />
        <label for="many">Финансы</label>
        </div>
        <div class="param">
        <input id="luck" size="2" maxlength="2" value="0" readonly></label> <input type="button" value="+5" onclick="counter1(5, 'luck')" /> <input type="button" value="-5" onclick="counter1(-5, 'luck')" />
        <label for="luck">Удачливость</label>
        </div>
    </div>
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2012, 01:09
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

поправочка. с elem.querySelectorAll(css)
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2012, 01:28
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Я не совсем понял, что вы имеете ввиду - 8-ю строку в коде? Естественно, что elements[i] возвращает объект-элемент DOM, а не число, а его свойство value возвращает строку.
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2012, 01:32
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Эм, нет. Сумму всех значений. Но я уже разобрался сам. Проблема была в
parseInt(elements[i].value, 10). нужно назначить переменную и приравнять ее к parseInt(elements[i].value, 10). Ну и еще в пример то ли от научного метода тыка пострадал, то ли я уже слишком устал , но везду должно быть elements[i].value.
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2012, 01:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function ddd (){
    var elements = document.querySelectorAll('#allparam>.param input:first-child ');

    var rrr = 0 

    for (var i=0; i<elements.length; i++ ) {
       rrr += ( parseInt( elements[ i ].value ) || 0 );
    }

    alert(rrr)
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2012, 01:41
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Цитата:
parseInt( elements[ i ].value ) || 0
а зачем тут этот ноль и почему он разделен "или"?
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2012, 01:54
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от PashPP
а зачем тут этот ноль и почему он разделен "или"?
если parseInt не сможет преобразовать строку в число, тогда будет использован ноль
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47