Задать вопрос

Как с помощью javascript распарсить строку или просто изменить часть атрибута?

На сайте есть кнопка добавления товара в корзину, у каждой кнопки есть атрибут вида:
onclick="addcart(2,1,27);"
Последняя переменная в функции - количество товара. Без проблем реализовал кнопки "плюс" и "минус", сделал <div id="points"></div> в котором указывается количество для юзверя.
До этого всего был атрибут data-qnt="" и все обрабатывалось jQuery, но от них решил отказаться в пользу простого онклика. Собственно не могу решить задачу как поменять последнее значение в функции в онклике. Есть ли в js функция подобная substr() в php?

Функции плюс-минус реализовал следующим образом:
// В диве points есть по умолчанию какое-то значение кол-ва товара (бывает 1, а бывает только упаковка по 7 штук, например, для этого и юзается qnt)
function inc(qnt){
    $("#points").html(parseInt($("#points").html())+qnt);
    $('#id кнопки').attr("data-qnt",parseInt($('#id кнопки').attr("data-qnt"))+qnt); // нужно заменить на фун-ю изменения онклика
    return false;
}

function dec(qnt){
    if (parseInt($("#points").html())>qnt) {
        $("#points").html(parseInt($("#points").html())-qnt);
        $('#id кнопки').attr("data-qnt",parseInt($('#id кнопки').attr("data-qnt"))-qnt); // нужно заменить на фун-ю изменения онклика
        return false;
    }
}


Заранее спасибо за ответ =)
  • Вопрос задан
  • 248 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ivanq
@Ivanq
Знаю php, js, html, css
"abc".substr(1, 1); // "b"

Но лучше так не делать. Хранить где-то свойство-значение, потом его просто подставлять.
Ответ написан
Комментировать
medvedhack
@medvedhack Автор вопроса
Реализовал немного тупо, но работает вроде все прекрасно
function inc(qnt){
	var defqnt = parseInt($("#points").html())+qnt;
	var defon = $('#id кнопки').attr("onclick").replace(/addcart|[();]/g, "").split(',');
	$("#points").html(defqnt);
	$('#id кнопки').attr("onclick",'addcart('+defon[0]+','+defon[1]+','+defqnt+');');
	return false;
}

function dec(qnt){
	if (parseInt($("#points").html())>qnt) {
		var defqnt = parseInt($("#points").html())-qnt;
		var defon = $('#id кнопки').attr("onclick").replace(/addcart|[();]/g, "").split(',');
		$("#points").html(defqnt);
		$('#id кнопки').attr("onclick",'addcart('+defon[0]+','+defon[1]+','+defqnt+');');
		return false;
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы