2016-08-10 4 views
1

divデータの属性値を更新するためのJavaスクリプトの変更を行っています。以下はその詳細な説明です。javascriptまたはjqueryを使用してdiv内のデータセットの更新値を取得できません

いくつかのデータ属性を持つdivがあります。最初にページが読み込まれると、デフォルト値に設定されます。 Ajax呼び出しを通じて

<div class="offer_option" id="offerView" data-term="24" data-rc="54.99"> 
    <a href="#" class="customize_offer" id="customize">Select</a> 
</div> 

私は以下のように「データ-RC」値を更新しようとしています。

document.getElementById("offerView").dataset.rc = 100.00; 

または

$("#offerView").data('rc', 100.00); 

私は以下のコードをリンクする "を選択" をクリックすると以下

$('.customize_offer').unbind('click').click(function() { 
    selectOffer($(this)); 
}); 

を実行します

function selectOffer(selectButton) { 
    var offerOption = selectButton.parents('.offer_option'); 
    var offerDetails = offerOption.data(); 
    console.log(offerDetails); 
} 

"selectOffer" 機能であります問題は、 asetは "offerDetails"変数にdata-rcの更新された値を表示せず、空の値を表示しています。私はいくつかのjのクエリオプションとJavaスクリプトオプションを試しましたが、私は "offerDetails"変数で更新された値を取得することができません。これを修正する方法を教えてください。それが起こるのはなぜ

おかげで、 Nagendra

+2

'parents'を' closest'で置き換えてみてください。 – adeneo

+0

@Nagendra:ログを記録してみましょう。console.log(offerOption);オブジェクトを返すか定義されていない場合 – Mimouni

答えて

3

$("#offerView").attr('data-rc', 100.00); 

を試してみてください?

jQuery .data()は、データを格納するためにjQuery内の特別なキャッシュオブジェクトを使用することによって、データ属性の値を最初に取り込みます。DOMの属性は変更されません。属性を変更するには、使用する必要があります。attr()

+0

OP *は 'data()'を使って値を取得しているので、属性は重要ではありませんか? – adeneo

+0

しかし、彼は「Ajaxコールを通して、私は "data-rc"の値を更新しようとしています。 –

+1

@magesh Kumaar。そのコードは次のように書かれていなければなりません:.attr( "data-rc"、100.00) – NachoDawg

関連する問題