[英]How to fire JS function from area href
我有一个带有这样的链接映射的图像(在PHP中生成):
<map name="map_bc-03" id="map_bc-03">
<area shape="circle" coords="166,28,12" href="#" onClick="changeCount('plus','bc-03');">
<area shape="circle" coords="166,82,11" href="#" onClick="changeCount('minus','bc-03');">
</map>
我正在尝试触发一个名为changeCount(type,product)
的JS函数。
JS函数的目的是获取HTML元素的当前值( <span>
)并将其加1(x + 1)。 JS函数如下所示:
function changeCount(type,product)
{
if ( type == "plus" )
{
$("#count_" + product).val() = $("count_" + product).val() + 1;
}
}
问题是1 / JS函数未使用错误消息“ ReferenceError:未定义changeCount”触发,我不明白为什么这么清楚地定义了函数。
问题2 / JS函数本身导致“ ReferenceError:postfix操作中无效的左侧表达式”错误(即使未触发)。
任何帮助,不胜感激!
val()
用于表单元素。 对于<span>
您需要html()
或text()
。 尝试这个
function changeCount(type,product){
if ( type == "plus" ){
$("#count_" + product).text(function(index, val){
return parseInt(val)+1;
});
}
}
使用val(value);
而不是使用val() = value;
。
重要的是
如果目标选择器是输入或任何表单元素,则使用.val()
。 否则,如果它是div
, span
或任何其他非格式元素中的任何一个,则使用.text()
而不是.val()
。 因为,非形式元素没有任何值。
根据您的问题,您的目标是<span>
。 因此,我认为您必须使用.text()
。
function changeCount(type,product)
{
if ( type == "plus" )
{
$('#count_'+ product).text(Number($('#count_' + product).text()) + 1);
}
}
它应该是
$("#count_" + product).val() = parseInt($("#count_" + product).val()) + 1;
获取值时缺少“#”,应使用parseInt。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.