Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery属性选择器不适用于数据属性_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript jquery属性选择器不适用于数据属性

Javascript jquery属性选择器不适用于数据属性,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我知道这可能是重复的问题 及 但我仍然无法选择存在属性“数据值”的所有元素 问题: 我希望语句B)$('[data value]')或$('*[data value]*')应返回 具有数据属性“数据值”,但不返回任何内容 但是,语句A)$('openingBalAccount')。数据('value')获取结果“ACC-2” 如果上面的语句A起作用,那么语句B也应该起作用,但它不会发生 下面是Chrome DeV工具屏幕,考虑屏幕上的前2个语句作为语句A,并如上所述作为语句B.,语句B也应该工作

我知道这可能是重复的问题 及

但我仍然无法选择存在属性“数据值”的所有元素

问题: 我希望语句B)
$('[data value]')
$('*[data value]*')
应返回 具有数据属性“数据值”,但不返回任何内容

但是,语句A)
$('openingBalAccount')。数据('value')
获取结果“ACC-2”

如果上面的语句A起作用,那么语句B也应该起作用,但它不会发生

下面是Chrome DeV工具屏幕,考虑屏幕上的前2个语句作为语句A,并如上所述作为语句B.,语句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属性。您无法访问内部存储的数据

$('#accountsModalSelect')。在('click',accountsModalSelect()上的函数{
让rowData=$('#accountsModalSelect')。数据('selected'))
如果(行数据){
$(“.accountSource”)
.val(rowData.description)
.data('value',rowData.account)
.attr('data-value',rowData.account)//添加此
}
$('#accountsModal').modal('hide'))
})

如果它不在HTML中,那么jQuery的
.data()
将不会设置HTML
data-*
属性。它只会存储数据。如果要设置
data-*
属性,则需要
.attr('data-where','12345')
如上所述,换一种方式:
$()。数据(“键”、“值”)
将在jquery内部存储该值,它不会更改HTML,因此查找
$(“[data key=value]”)将找不到它。如果有其他选择器选项,你可以使用.filter,例如
$(“.class”).filter(function(){$(this.data(“key”)==“value”;})
@NiettheDarkAbsol-谢谢它确实起了作用,根据你的建议,我将它包含在html中,帕格html看起来像现在的
(name='openingBalAccount'type='text'数据值=“”)
谢谢-它确实有效,添加到html代码中,如
(name='openingBalAccount'type='text'data value='')