私はボタンを持っています:
<button id="btn1">55</button>
そして、ボタンの値をtest2に変更します
$('#btn1').text("22");
ボタンoldValueがnewValueより大きい場合、背景画像を表示したいと思います。
このボタンから古い値を取得するにはどうすればよいですか?
「私は100以上のボタンを持っていて、それらは動的に変化しています。」
更新:変更される前に発生するイベントはありませんか?
私はボタンを持っています:
<button id="btn1">55</button>
そして、ボタンの値をtest2に変更します
$('#btn1').text("22");
ボタンoldValueがnewValueより大きい場合、背景画像を表示したいと思います。
このボタンから古い値を取得するにはどうすればよいですか?
「私は100以上のボタンを持っていて、それらは動的に変化しています。」
更新:変更される前に発生するイベントはありませんか?
jQueryの.data()呼び出しを使用して、必要に応じて取得できるように保存できます。
たとえば、HTMLは次のようになります。
HTML
<form action="#" method="GET">
<input type="text" value="369" />
<button id="btnID">420</button>
</form>
最初に必要なデータを簡単に収集し、それを各要素に割り当てることができます。
スクリプトを開く
$("button") // would simply grab all buttons, you can use whatever css selector
.each(function(i) {
$(this).data("prevVal", parseInt($(this).text()));
});
その後、必要に応じて、この値を新しい値と照合できます。
... some change function
$('#btn1').text("22");
if ($('#btn1').data("prevVal") > 22) {
// do work
}
$('#btn1').data("prevVal", 22)
参考までに
代わりに入力を使用している場合は、次のようになります。
$("input").each(function(i) { $(this).data("prevVal", parseInt($(this).val())) })
.on("change", function(e) {
var newVal = parseInt($(this).val());
if ($(this).data("prevVal") > newVal) {
// do work
};
$(this).data("prevVal" newVal);
});
または、値のリストを維持したい場合:
$("input").each(function(i) {
$(this).data("vals", new Array());
$(this).data("vals").push(parseInt($(this).val()));
})
.on("change", function(e) {
$(this).data("vals").push(parseInt($(this).val()));
var vals = $(this).data("vals");
if (vals[vals.length-1] > vals[vals.length-2]) {
// do work
};
});
値を変更する前に比較する必要があります。
例えば
$('#btn1').text(function (index, old) {
if (parseInt(old) > 22) {
//change background image
}
return "22";
});
変更前に保存しない限り、古い値を取得することはできません。変更イベントは、値がすでに変更された後に発生します。
古い値がどこにあるかわからない..しかし、テキストを変更しているときにそれがあれば、関数を使用してテキストを変更します。
$('#btn1').text(function (index, oldvalue) {
console.log(oldvalue);
return "test2";
});
jQuery.data()を使用して、指定された要素に関連付けられたデータを保存すると、同じ要素にアクセスするだけでデータを取得できます。
jQuery.data ()の使用方法を示すリンクは次のとおりです。
より便利な.data()リンクを使用したコードは次のとおりです
セットする
$("#btn1").data("oldVal", $("#btn1").html());
得る
$("#btn1").data("oldVal");
<button id="btn1">test1</button>
$(document).ready(function(){
var i=1;
$('#btn1').click(function(){
$(this).data('old', $.trim($(this).text())).text('btn'+(++i));
alert( $(this).data('old'));
});
});
デモ用