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

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

抱歉,如果我的解释有点混乱,我的想法很完美,但试图把它写下来要困难得多。

4

5 回答 5

5

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/

于 2012-06-15T14:45:20.150 回答
2

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

这可以解决问题:

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

我已经建立了一个例子:http: //jsfiddle.net/dvirazulay/YPnwQ/

于 2012-06-15T14:44:06.523 回答
1
$( "[data-bind]" ).each( function() {
    var elem = $( this );
    alert( elem.data( "bind" ) );
});

http://jsfiddle.net/NhNhK/

于 2012-06-15T14:44:17.817 回答
1

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

迭代这些元素并操作 data-bind 属性:

$('[data-bind]').each(function(element,index){
  var data_bind = $(element).data('bind');
  alert(data_bind);
})
于 2012-06-15T14:45:47.503 回答
0

您可以使用.data()with 方法.each()来完成此操作。

演示

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

    alert($this.data('bind').replace("value: ", ""));            
});​
于 2012-06-15T14:45:45.697 回答