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

Getting All Data-Bind Values Using JQuery

本文关键字:数据绑定 JQuery 获取 使用      更新时间:2023-09-26
    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);
    })
}

以上是我的函数,我想读取所有具有属性数据绑定的输入,例如

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

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

所以一个例子是

<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"/>

在每个循环中,我希望能够使用数据绑定的值。例如,值[0] = 'AOfficer1'

对不起,如果我的解释有点混乱,我脑子里的想法很完美,但试图把它写下来要困难得多。

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

$(document).ready(function(){
    $('input.InputText').each(function(){
        var input = $(this);
        if ($(input).data().bind) {
            alert($(input).data().bind);
        }
    });
});​

然后你可以做字符串操作来解析你的值,我建议使用 JSON 并像对象一样加载它。 这是一个工作小提琴:http://jsfiddle.net/3NERK/6/

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

这将解决问题:

dataBinds = [];
$("[data-bind]").each(function(){
     dataBinds.push($(this).attr("data-bind").substring(7));
});​​​​​​

我设置了一个例子:http://jsfiddle.net/dvirazulay/YPnwQ/

$( "[data-bind]" ).each( function() {
    var elem = $( this );
    alert( elem.data( "bind" ) );
});

http://jsfiddle.net/NhNhK/

获取具有data-bind属性的所有元素:$('[data-bind]')

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

$('[data-bind]').each(function(element,index){
  var data_bind = $(element).data('bind');
  alert(data_bind);
})

您可以将 .data() 方法与 .each() 一起使用来实现此目的。

演示

$('input').each(function() {
    var $this = $(this);
    alert($this.data('bind').replace("value: ", ""));            
});​