首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery返回未定义的数据属性

Jquery返回未定义的数据属性
EN

Stack Overflow用户
提问于 2017-05-17 21:32:19
回答 2查看 120关注 0票数 0

如何在警报id_tarif_groupe上从data-idTarif获取值?我尝试过使用attr()data()方法,但它们都不起作用。

代码语言:javascript
复制
$('.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);
});
代码语言:javascript
复制
<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>

EN

回答 2

Stack Overflow用户

发布于 2017-05-17 22:16:35

ddd元素没有data,这就是您的错误

代码语言:javascript
复制
$('.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);
});
代码语言:javascript
复制
<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>

票数 0
EN

Stack Overflow用户

发布于 2017-05-17 22:17:12

this指的是触发更改的元素。如果您在警报中打印此消息,您会看到触发事件的是表。

要获得输入字段的值,需要将this更改为input

它还需要是小写的,如w3c标准:https://www.w3.org/TR/html5/dom.html#dom-dataset中所述

对于元素的前五个字符是字符串“

-”并且其余字符(如果有)不包括任何大写ASCII字母的元素上的每个内容属性,按照这些属性在元素的属性列表中列出的顺序,添加一个名称-值对,该对的名称是删除了前五个字符的属性的名称,值是属性的值。

代码语言:javascript
复制
$('.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);
});
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44026394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档