2016-05-14 5 views
2

したがって、data-time属性はデータベースからフェッチされた整数値を保持しています。私はそれの価値を得るが、それは未定義を返す。私はブラウザを調べ、私のデータタイムアトリビュートは値を正しく保存します。 私はそれ以前に同じことをしていて、それは未定義に戻っていないので、本当に奇妙です。ここに私のコードは次のとおりです。JavaScript - データ属性の値を取得すると、未定義の結果が返される

<option data-price="{{ $availableOption->price * $course }}" data-time="{{ $availableOption->delivery_time }}"> 
... 
</option 

スクリプト

$('.config-option option:selected').each(function() { 
    var currentElement = $('this'); 
    var optionDeliveryTimeStr = currentElement.attr('data-time'); 
    console.log(optionDeliveryTimeStr); 
}); 

Iは、データ価格属性とその前に、まったく同じことを行うと、それは文字列として値を返します。しかし、データ時間属性では機能しません。誰かが解決策と説明を提供できるなら、私は非常に感謝しています。代わりにcurrentElementの

答えて

4

あなたの問題は

var currentElement = $('this'); 

この行は `$(currentElementをthisから引用符を削除し、

var currentElement = $(this); 
+0

@ Codeartsはこれで問題は解決しましたか? – gurvinder372

+0

はい。私はそれを正しくデータ価格で持っていますが、私は第2のデータ属性で引用符を書いたことに気付かなかった。 – Codearts

+0

@ Codeartsそれはあなたのために働いてうれしい。お力になれて、嬉しいです! – gurvinder372

0

使用$(currentElement):

$('.config-option option:selected').each(function() { 
    var currentElement = $(this); 
    var optionDeliveryTimeStr = $(currentElement).attr('data-time'); // OR $(currentElement).data('time'); 
    console.log(optionDeliveryTimeStr); 
}); 
+0

と交換).attr( 'data-time'); '==' $($ this))。attr( 'data-time'); '? – guradio

関連する問題