2016-04-17 66 views
0

火JS功能我有一個鏈接地圖像這樣(在PHP中生成的)一個圖像:如何從區域HREF

 <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:無效左側表達後綴操作」錯誤(即使不啓動)....

任何幫助不勝感激!

+4

什麼是雙+ – code4pi

+1

試圖使用'++'而不是'+'來進行串聯是導致第二個錯誤的原因。 –

+0

我更新了代碼,函數現在被解僱了......仍然在'$(「#count_」+ product).val()= $(「count_」+行)上得到'Uncaught ReferenceError:產品).val()+ 1;' – Michal

回答

1

val()是表單元素。對於<span>,您需要html()text()。嘗試,而不是使用val() = value;

function changeCount(type,product){ 
    if (type == "plus"){ 
     $("#count_" + product).text(function(index, val){ 
     return parseInt(val)+1; 
     }); 
    } 
} 
1

使用val(value);

重要的是,

,如果你的目標選擇是輸入或任何形式的元素,然後使用.val()。 否則,如果它是div,span或任何其他非表單元素中的任何一個,則使用.text()而不是.val()。因爲,非表單元素沒有任何值。

根據你的問題,你的目標是<span>。所以,我認爲你必須使用.text()

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

應該

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

「#」 丟失時,應使用獲得價值和parseInt函數。