如何从警告id_tarif_groupe上的data-idTarif
获取值?我尝试使用attr()
和data()
方法,但没有一种方法正常运行。
$('.ddd').click(function(event) {
var ID = $(this).attr('id');
}).change(function() {
var ID = $(this).attr('id');
var tarifHT = $('#id_saddle_model_' + ID).val();
var id_tarif_groupe = $(this).data('idTarif');
alert(id_tarif_groupe + ' ' + tarifHT + ' ' + ID);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr bgcolor=#e0e0e0 id="108" class="ddd">
<td>ASG </td>
<td><input type="text" value="" style="" id="id_saddle_model_108" data-idTarif="1"></td>
<td><input type="text" value="3700.00" style="" id="id_saddle_model_108" data-idTarif="2"></td>
<td id="l_108"></td>
</tr>
<tr bgcolor=#ffffff id="99" class="ddd">
<td>CEC </td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="1"></td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="2"></td>
<td id="l_99"></td>
</tr>
</table>
&#13;
答案 0 :(得分:0)
ddd
元素没有data
且您的错误
$('.ddd input').change(function() {
var id_saddle_model_ = $(this);
var ID = id_saddle_model_.closest("tr").attr("id");
var tarifHT = id_saddle_model_.val();
var id_tarif_groupe = id_saddle_model_.attr('data-idTarif');
alert(id_tarif_groupe + ' ' + tarifHT + ' ' + ID);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr bgcolor=#e0e0e0 id="108" class="ddd">
<td>ASG </td>
<td><input type="text" value="" style="" id="id_saddle_model_108" data-idTarif="1"></td>
<td><input type="text" value="3700.00" style="" id="id_saddle_model_108" data-idTarif="2"></td>
<td id="l_108"></td>
</tr>
<tr bgcolor=#ffffff id="99" class="ddd">
<td>CEC </td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="1"></td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="2"></td>
<td id="l_99"></td>
</tr>
</table>
&#13;
答案 1 :(得分:0)
this
指的是触发更改的元素..如果您在警报中打印它,则会看到触发事件的tablerow。
要获取输入字段的值,您需要将this
更改为input
。
它也需要小写,如w3c标准中所述: https://www.w3.org/TR/html5/dom.html#dom-dataset
对于前五个字符的元素的每个内容属性 是字符串“data-”,其余字符(如果有的话)不是 包括任何大写的ASCII字母,按顺序包括 属性列在元素的属性列表中,添加一个 名称 - 值对列表,其名称是属性的名称 删除前五个字符,其值为属性 值。
$('.ddd').click(function(event) {
var ID = $(this).attr('id');
}).change(function() {
var ID = $(this).attr('id');
var input = $('#id_saddle_model_' + ID);
var tarifHT = input.val();
var id_tarif_groupe = input.data('idtarif');
alert(this + ':' + input + ':' + id_tarif_groupe + ' ' + tarifHT + ' ' + ID);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr bgcolor=#e0e0e0 id="108" class="ddd">
<td>ASG </td>
<td><input type="text" value="" style="" id="id_saddle_model_108" data-idTarif="1"></td>
<td><input type="text" value="3700.00" style="" id="id_saddle_model_108" data-idTarif="2"></td>
<td id="l_108"></td>
</tr>
<tr bgcolor=#ffffff id="99" class="ddd">
<td>CEC </td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="1"></td>
<td><input type="text" value="" style="" id="id_saddle_model_99" data-idTarif="2"></td>
<td id="l_99"></td>
</tr>
</table>