2013-06-15 2 views
0

Я пытаюсь выбрать конкретное изображение для отображения в соответствии с URL-адресом, который я получил от предыдущей страницы, Я получаю один из 3-х URL-адресов, http://domain.com/mobile.html/#0 или 1 или 2 Мне нужно добавить 1 к номер и отправить соответствующее изображение, по какой-то причине я получаю ложные изображения для изображения 0, а для изображений 2 и 3 я получаю изображение -1 (1 & 2).Маленькая проблема с счетчиком JS

что-то не так с счетчиком, который я пытаюсь создать, и я не могу понять, что.

<script type="text/javascript"> 
    $(document).ready(function(){ 
     var numb = document.URL.substr(document.URL.indexOf('#')+1); 
     $('[name=mobileBar]').val(numb); 
     $('.couponImage').attr('src','img/bar'+numb+'.png'); 
    }); 
</script> 

ответ

0
<script type="text/javascript"> 
    $(document).ready(function(){ 
     var numb = parseInt(document.URL.substr(document.URL.indexOf('#')+1),10)+1; 
     $('[name=mobileBar]').val(numb); 
     $('.couponImage').attr('src','img/bar'+numb+'.png'); 
    }); 
</script> 

Обратите внимание на +1 в конце первой строки. Кажется, вы путаетесь с document.URL.indexOf('#')+1. Этот +1 должен увеличить индекс на 1 и подстроку оттуда, а не добавлять 1 к извлеченному числу.

+0

он не работает для меня, он генерирует bar11.png и bar21.png –

+1

Не забывайте аргумент radix 'parseInt'! – Bergi

+0

@Amit Sonnenschein: вы использовали parseInt (в моем ответе)? –

0

Это потому, что вы не добавляете 1 к прилавку ... Это должно работать

var numb = document.URL.substr(document.URL.indexOf('#')+1); 
numb = parseInt(numb,10) + 1; 
+0

Возможно, вы хотите «parseInt' для хорошей оценки. – superEb

+0

Это генерирует 01, 11 и 21 по какой-то причине –

+0

@Amit Sonnenschein: потому что без parseInt. Это будет конкатенация строк, а не добавление. –