如何从区域href

时间:2016-04-17 23:27:01

标签: javascript jquery html

我有一个像这样的链接映射的图像(在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函数没有被错误消息触发&#34; ReferenceError:changeCount没有被定义&#34;,我不明白为什么显然函数被定义....

问题2 / JS函数本身导致&#34; ReferenceError:后缀操作中的左侧表达式无效&#34;错误(即使没有解雇)....

任何帮助非常感谢!

3 个答案:

答案 0 :(得分:1)

bool用于表单元素。对于val(),您需要<span>html()。试试这个

text()

答案 1 :(得分:1)

使用val(value);代替val() = value;

重要的是,

如果目标选择器是输入或任何表单元素,则使用.val()。 否则,如果它是divspan或任何其他非表单元素中的任何一个,则使用.text()代替.val()。因为,非表单元素没有任何值。

根据您的问题,您的目标是<span>。所以,我认为你必须使用.text()

function changeCount(type,product)
{
  if ( type == "plus" )
    {
      $('#count_'+ product).text(Number($('#count_' + product).text()) + 1);
    }
 }

答案 2 :(得分:0)

应该是

$("#count_" + product).val() = parseInt($("#count_" + product).val()) + 1;

&#34;#&#34;获取值时会丢失,并且应该使用parseInt。