2017-01-13 40 views
0

這裏是剝離的代碼片段,我開始解釋我的問題時遇到困難。使用jQuery刪除點擊功能的數據屬性

按鈕觸發功能:

<button id="deleteItem" type="button">Delete</button> 

輸入字段屬性我試圖更新

<input id="quantity" type="text" name="field" min="1" value="1" data-price="10"> 

jQuery來處理

$(function() { 
    // Bind an action to the deleteItem - click event 
    $("#deleteItem").on('click', function() { 

     var deleteQuantity = document.getElementById("quantity"); 

     // Add 0 value to the data-price value 
     deleteQuantity.data('price','0'); 

    }); 
}); 

當點擊事件被觸發時,我從控制檯得到這個。

遺漏的類型錯誤:deleteQuantity.data不是一個函數

+0

'變種deleteQuantity = $( 「#quantity」);' – Azim

+0

或簡單的$('#數量').... – sinisake

+1

您正在嘗試向我們在簡單的香草JavaScript對象'deleteQuantity'上使用一個jQuery方法('.data()') – j08691

回答

2

您可以選擇輸入這樣$('input#quantity')和改變data-priceattr()

$('#deleteItem').click(function() { 
 
    $('#quantity').attr('data-price', 0) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="deleteItem" type="button">Delete</button> 
 
<input id="quantity" type="text" name="field" min="1" value="1" data-price="10">

+2

最好不要限定ID選擇器;它實際上減緩了選擇過程。具有'#quantity'的選擇器將使用'document.getElementById('quantity')',它立即獲取元素。一個帶有「輸入#數量」的選擇器必須得到元素,然後檢查它是否是「輸入」,或者找到所有的「輸入」,然後檢查每個輸入的ID ... –

+0

是的, ID'必須是唯一的,所以沒有意義。 –

+0

那麼@NenadVracar我已經嘗試過,但我沒有得到它。現在我已經將它與您的答案一起轉載,但仍未更新。必須有別的東西作爲按鈕輸入,並且由索引號指定的循環輸出,如'deleteItem-0'和'quantity-0'。我檢查過很多次,每個刪除按鈕分別更新輸入字段屬性。因爲還有其他輸入字段,比如'price-0','id'選擇器,'deleteItem-0'按鈕可以很好地完成這項工作。 –