Javascript JS:添加一个值并附加到链接
我正在尝试将+1或-1添加到范围,然后将该值附加到an href 这是我的代码:Javascript JS:添加一个值并附加到链接,javascript,html,Javascript,Html,我正在尝试将+1或-1添加到范围,然后将该值附加到an href 这是我的代码: <script> $(function () { var valueElement = $('#value'); function incrementValue(e) { valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment, 0)); calculateLi
<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)
}
});
现在,我可以通过按下加号和减号按钮来更改value span的值,但每当我按下href cashierLink时,它总是发送页面加载的value、valueone和valuetwo的默认值
我做错了什么
提前感谢,
Arseney您的valueElement首先更改了其文本,但在calculateLink调用期间,您尝试使用value1.text分配url。但是,value1没有.text属性,因为它是字符串而不是对象。这会在执行过程中导致错误,并最终提前退出代码,这就解释了为什么value元素在视觉上发生了变化,而您的href值却不正确
请尝试对您的URL执行以下操作:
var url = "deskshop3.aspx?item1=" + value1 + "&item2=" + value2 + "&item3=" + value3;
我不确定这是您想要的方式,但是您应该尝试使用全局变量,而不是元素的文本值。我制作了一个JSFIDLE来向您展示它的外观,您可以按照自己的方式进行更改
您是否尝试过查看调试器中是否存在任何控制台错误?什么是value1.text,这些值应该只是字符串,而不是带有.text属性的对象。你说得对。那是最后一刻的错误。然而,将其更改为valueone并没有改变结果。是的,我错写了两次文本。我已将其更改为您编写的内容,但结果是相同的。您是否确实在deskshop3.aspx页面初始化时读取了值item1、item2和item3的查询字符串,然后应用它们?谢谢。我发现了我的问题。value2和value1为null,它们的可见性为false,我不知道这会使它们为null。因此,现在我在使用它们之前首先检查它们是否为null,一切都正常!
/// 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);
}