jquery 属性选择器不适用于数据属性
jquery attribute selector is not working for data-attribute
我知道它可能与 SO 问题重复
Selecting element by data attribute and jQuery how to find an element based on a data-attribute value?
但我仍然无法 select 存在属性“data-value”的所有元素。
问题:
我期待声明 B) $('[data-value]')
或 $('*[data-value]*')
应该 return 所有元素
具有数据属性“data-value”,但它 return 什么都没有。
但是语句 A) $('#openingBalAccount').data('value')
得到结果“ACC-2”。
如果上面的陈述 A 有效,那么陈述 B 也应该有效,但它没有发生。
下面是相同的 Chrome 开发工具屏幕,将屏幕中的前 2 个语句视为上面的语句 A,其余为语句 B。如上所述,如果语句 A 有效,则语句 B 也应该有效.
开发工具示例应该足以识别任何问题,但如果您仍然坚持要代码,请看这里。
Jquery 设置数据值的语句
$('#accountsModalSelect').on('click', function onAccountsModalSelect() {
let rowData = $('#accountsModalSelect').data('selected')
if (rowData) $('.accountSource').val(rowData.description).data('value', rowData.account)
$('#accountsModal').modal('hide')
})
HTML 哈巴狗格式的代码
form#openingBalForm
input.form-control#openingBalUpdateType(type='hidden')
input.form-control#formtab(type='hidden' value='openingbaltab')
.row.form-group
.col-4
labal(for='openingBalFinYear') Financial Year
.col
input.form-control#openingBalFinYear(name='openingBalFinYear' type='text' )
.row.form-group
.col-4
labal(for='openingBalAccount') Account
.col
.input-group
input.form-control.accountSource#openingBalAccount(name='openingBalAccount' type='text' )
.input-group-append#openingBalAccountSearch
.input-group-text
.fas.fa-search
.row.form-group
.col-4
labal(for='openingBalAmount') Amount
.col
input.form-control#openingBalAmount(name='openingBalAmount' type='number')
如果你想做这样的事情,你还必须添加 html-attribute 到元素。您无法访问内部存储的数据。
$('#accountsModalSelect').on('click', function onAccountsModalSelect() {
let rowData = $('#accountsModalSelect').data('selected')
if (rowData) {
$('.accountSource')
.val(rowData.description)
.data('value', rowData.account)
.attr('data-value', rowData.account) // Add this
}
$('#accountsModal').modal('hide')
})
我知道它可能与 SO 问题重复 Selecting element by data attribute and jQuery how to find an element based on a data-attribute value?
但我仍然无法 select 存在属性“data-value”的所有元素。
问题:
我期待声明 B) $('[data-value]')
或 $('*[data-value]*')
应该 return 所有元素
具有数据属性“data-value”,但它 return 什么都没有。
但是语句 A) $('#openingBalAccount').data('value')
得到结果“ACC-2”。
如果上面的陈述 A 有效,那么陈述 B 也应该有效,但它没有发生。
下面是相同的 Chrome 开发工具屏幕,将屏幕中的前 2 个语句视为上面的语句 A,其余为语句 B。如上所述,如果语句 A 有效,则语句 B 也应该有效.
开发工具示例应该足以识别任何问题,但如果您仍然坚持要代码,请看这里。
Jquery 设置数据值的语句
$('#accountsModalSelect').on('click', function onAccountsModalSelect() {
let rowData = $('#accountsModalSelect').data('selected')
if (rowData) $('.accountSource').val(rowData.description).data('value', rowData.account)
$('#accountsModal').modal('hide')
})
HTML 哈巴狗格式的代码
form#openingBalForm
input.form-control#openingBalUpdateType(type='hidden')
input.form-control#formtab(type='hidden' value='openingbaltab')
.row.form-group
.col-4
labal(for='openingBalFinYear') Financial Year
.col
input.form-control#openingBalFinYear(name='openingBalFinYear' type='text' )
.row.form-group
.col-4
labal(for='openingBalAccount') Account
.col
.input-group
input.form-control.accountSource#openingBalAccount(name='openingBalAccount' type='text' )
.input-group-append#openingBalAccountSearch
.input-group-text
.fas.fa-search
.row.form-group
.col-4
labal(for='openingBalAmount') Amount
.col
input.form-control#openingBalAmount(name='openingBalAmount' type='number')
如果你想做这样的事情,你还必须添加 html-attribute 到元素。您无法访问内部存储的数据。
$('#accountsModalSelect').on('click', function onAccountsModalSelect() {
let rowData = $('#accountsModalSelect').data('selected')
if (rowData) {
$('.accountSource')
.val(rowData.description)
.data('value', rowData.account)
.attr('data-value', rowData.account) // Add this
}
$('#accountsModal').modal('hide')
})