Javascript 使用JQuery获取所有数据绑定值

Javascript 使用JQuery获取所有数据绑定值,javascript,jquery,forms,object,properties,Javascript,Jquery,Forms,Object,Properties,上面是我的函数,我想读取所有属性数据绑定的输入 function getDbValue() { alert($('[data-bind]').length); alert($('[data-bind][0].data-bind')); alert($('[data-bind][0].value')); jQuery.each($('[data-bind]'), function(databind,key) { alert(key);

上面是我的函数,我想读取所有属性数据绑定的输入

    function getDbValue()
{
    alert($('[data-bind]').length);
    alert($('[data-bind][0].data-bind'));
    alert($('[data-bind][0].value'));
    jQuery.each($('[data-bind]'), function(databind,key)
    {
        alert(key);
        alert(databind);
        alert(databind[key].data-bind);
    })

}

^运行函数时,我希望它返回'AOfficer',因为这是数据绑定值

例如

<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer" class="InputText"/>

在for-each循环中,我希望能够使用数据绑定的值。。 e、 g值[0]=“AOfficer1”


对不起,如果我的解释有点让人困惑,我脑子里的想法很完美,但要把它写下来要困难得多

您可以通过jQuery属性选择器-
$(“[数据绑定]”)
搜索具有
数据绑定
属性的任何元素,然后使用
.each()
对其进行迭代,并从中构造
数据绑定
数组,从每个值中剥离
值:

这将实现以下目的:

<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer1" class="InputText"/>
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer2" class="InputText"/>
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer3" class="InputText"/>
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer4" class="InputText"/>
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer5" class="InputText"/>
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer6" class="InputText"/>
我举了一个例子:

jQuery对“数据某物”属性的解释与其他属性不同。因此,您应该选择所有元素并查找它们的数据绑定,如下所示:

$( "[data-bind]" ).each( function() {
    var elem = $( this );
    alert( elem.data( "bind" ) );
});
然后你可以进行字符串操作来解析你的值,我建议你使用JSON并像加载一个对象一样加载它。这里有一个有用的工具:

您可以使用
.each()
的方法来完成这项工作


获取具有
数据绑定
属性的所有元素:
$(“[data bind]”)

迭代这些元素并操作数据绑定属性:

$('input').each(function() {
    var $this = $(this);

    alert($this.data('bind').replace("value: ", ""));            
});​

您是否尝试过jquery的
.data()
方法<代码>$('input')。数据('bind')?是的,但是当使用for-each语句并执行该操作时,我得到了Uncaught-TypeError:对象0没有方法“data”,这可能是因为在
for each
循环中,您使用的是本机DOM元素,而不是jQuery对象。只有包装在jQuery对象中的元素才具有
.data()
方法。
$(document).ready(function(){
    $('input.InputText').each(function(){
        var input = $(this);
        if ($(input).data().bind) {
            alert($(input).data().bind);
        }
    });
});​
$('input').each(function() {
    var $this = $(this);

    alert($this.data('bind').replace("value: ", ""));            
});​
$('[data-bind]').each(function(element,index){
  var data_bind = $(element).data('bind');
  alert(data_bind);
})