2013-08-13 6 views
0

Я использую jquery ui для создания некоторых слайдеров. У меня много слайдеров, но я пытаюсь свести к минимуму код. Вот как у меня есть настройки слайдера в HTML:jquery ui слайдер, заполняющий значение

<div class="budget_icon-wrapper"> 
     <div data-name="space_def" class="icon"> 
      <img class="info" src="images/info.png" /> 
      <img src="images/space-icon.png" /> 
     </div> 
     <div id="space-item" class="space-item slider"></div> 
     <div id="space_item-value" class="item-txt">$3.00</div> 
    </div> 

DIV с классом «слайдер» является слайдер. В div рядом с ним у меня разные значения для каждого слайдера, это бывает 3 доллара. То, что я хотел бы сделать, это вывести значение из этого div (в этом случае 3), и это будет значение ползунка.

Сценарий я пытался, но не совсем работа заключается в следующем:

$(".slider").each(function() { 
    value = parseInt($(this).siblings(".item-txt").text(),10); 


    $(this).slider({ 
     animate: "fast", 
     max: 25, 
     min: 0, 
     value: value, 
     range: "min" 
    }); 
}); 

Спасибо за любую помощь в этом.

+0

Вы должны избавиться от '$' там. – DevlshOne

ответ

1

Изменить

value = parseInt($(this).siblings(".item-txt").text(),10); 

в

value = parseInt($(this).siblings(".item-txt").text().substring(1),10); 

jsFiddle example

parseInt возвращается NaN с $ вызывает его не вернуть то, что вы хотите. Как docs on parseInt note: «Если первый символ не может быть преобразован в число, parseInt возвращает NaN».

Update: В соответствии с просьбой, если вы хотите, чтобы значение 3,00 просто использовать value = $(this).siblings(".item-txt").text().substring(1);

+0

, поэтому мне было трудно полностью понять эту функцию. поэтому parseInt, если в div было десятичное число, это сделало бы это целое число. Что делает подстрока, и что делает 1 в()? – loriensleafs

+0

parseInt преобразует float или некоторые строки в целые числа. Подстрока в этом случае обрезает от 3,00 до 3,00, поэтому parseInt может ее понять. См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring для спецификаций подстроки. – j08691

+0

один последний вопрос. Есть ли способ использовать десятичное число, поэтому, если бы он составлял 3,30 доллара, то, как он настроен прямо сейчас, он будет хранить только 3 в переменной значения вправо? Как вы его получите, чтобы хранить 3,3? – loriensleafs

0
$(".slider").each(function() { 
    strVal = $(this).next('.item-txt').text().substring(1); // take the substring of the text "$3.00" from the second character to the end (remove the $) 
    value = parseInt(strVal,10); 
    $(this).slider({ 
     animate: "fast", 
     max: 25, 
     min: 0, 
     value: value, 
     range: "min" 
    }); 
}); 
Смежные вопросы