【问题标题】:trying to update the data elements using jquery尝试使用 jquery 更新数据元素
【发布时间】:2019-12-13 11:44:14
【问题描述】:

我让代码运行在我试图使用 jquery 替换某些值的地方

这是我的按钮

<button data-class="update" type="button" name="update" class="action" data-pk="RS" 
        id="update" data-columns="RRC,TTR,N">Create</button>

我有这个代码,在单选按钮上单击时,我想更新数据属性,其中 data-pk 将被替换为数据列中的值之一,并且 data-pk 值将被添加到数据列中

这样一种为一个属性增加价值,反之亦然

数据列是一个列表,所以这就是我卡住的地方

$('input[name="primarykey"]').click(function() {
  $("#action").data('pk',$(this).val());
}); 

我可以添加这个值,这将覆盖其他现有值,但我想复制该值并将其添加到 data-columns 并从将添加到此 data-pk 的数据列中删除该值

【问题讨论】:

  • 您的按钮 idupdate,而不是 action
  • 任何有关数据列结构的线索都将有助于为您提供一个好的答案。一个简单的 html sn-p 可能会有所帮助

标签: javascript jquery


【解决方案1】:

几件事:

  1. 您尝试以id (#) 的身份访问action,您必须为该元素设置id 属性。
  2. 使用 .data() 不会为你更新 DOM (src: JQuery data selector not updating with .data)

    jQuery .data() 最初是用 data- 属性中的值填充的,但设置它只会将相关的新值存储在内存中。它不会更改 DOM 中的属性。要更改属性,您必须使用:

  3. 通过使用.attr(),您可以更改DOM 并更改data-pkdata-columns 的值。

let el = $('#action');
const options = $.map($('input[name="primarykey"]'), e => e.value);

$('input[name="primarykey"]').click(function() {
  el.attr('data-pk', $(this).val());
  el.attr('data-columns', options.filter(e => e !== $(this).val()));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button data-class="update" type="button" name="update" id="action" data-pk="RS" id="update" data-columns="RRC,TTR,N">Create</button>

<input type='radio' name='primarykey' value='RRC'>
<input type='radio' name='primarykey' value='TTR'>
<input type='radio' name='primarykey' value='N'>
<input type='radio' name='primarykey' value='RS' checked>

希望这会有所帮助,

【讨论】:

  • 尝试使用let el = $('button[data-class="update"]'); - 但它不起作用,这是我能找到的常用链接
  • @Seb 您能否更新您的问题以包括相关的 HTML 和 JS(输入单选和按钮),以便我的回答更彻底
  • 这是我在页面中的按钮的html,没有额外的代码,你的代码是对的,但我的用例是我可以使用el中的数据属性来制作确定它有效
  • 当我最初加载我的页面时,没有选中收音机,当我点击时,它给了我未定义
  • 单选按钮的value 是什么?他们是RRC,TTR,NRS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 2010-11-19
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多