我正在尝试向范围添加+1(或-1),然后将该值附加到a href。
这是我的代码:
<script>
$(function () {
var valueElement = $('#value');
function incrementValue(e) {
valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment, 0));
calculateLink();
return false;
}
$('#plus').bind('click', { increment: 1 }, incrementValue);
$('#minus').bind('click', { increment: -1 }, incrementValue);
function calculateLink() {
var value1 = document.getElementById('value').innerText;
var value2 = document.getElementById('valueone').innerText;
var value3 = document.getElementById('valuetwo').innerText;
var url = "deskshop3.aspx?item1=" + value1.text + "&item2=" + value2.text + "&item3=" + value3.text;
var element = document.getElementById('cashierLink');
element.setAttribute("href", url)
}
});
现在,发生的事情是我能够通过按加号和减号按钮来更改“值”范围的值,但每当我按下href“cashierLink”时,它总是发送默认值“value”,“valueone” “和”valuetwo“页面加载。
我做错了什么?
提前致谢,
Arseney
答案 0 :(得分:0)
您的valueElement
首先更改了文字,但在calculateLink()
来电期间,您正尝试使用value1.text
分配网址。但是,value1
没有.text
属性,因为它是字符串而不是对象。这会导致执行过程中出现错误并最终提前退出代码,这就解释了为什么value元素会在视觉上发生变化,但是你的href值是不正确的。
请尝试为您的网址执行此操作:
var url = "deskshop3.aspx?item1=" + value1 + "&item2=" + value2 + "&item3=" + value3;
答案 1 :(得分:0)
我不确定这是你想要的方式,但你应该尝试使用全局变量而不是元素中的文本值。我做了一个JSFiddle来向你展示它的外观,你可以按照你想要的方式改变它。
/// global variables ///
var valCount = 0;
var value1 = ['first value', 'second value', 'third value'];
var value2 = ['first 2nd value', 'second 2nd value', 'third 2nd value'];
var value3 = ['first 3rd value', 'second 3rd value', 'third 3rd value'];
////////////////////////
$('#plus').bind('click', function(){ calculateLink(); });
$('#minus').bind('click', function(){ calculateLink(true); });
function calculateLink(minus) {
if(minus){
if(valCount == 0)
valCount = (value1.length-1);
else
valCount--;
} else{
if(valCount == (value1.length-1))
valCount = 0;
else
valCount++;
}
var url = "deskshop3.aspx?item1=" + value1[valCount] +
"&item2=" + value2[valCount] +
"&item3=" + value3[valCount];
document.getElementById('cashierLink').setAttribute("href", url);
}