Getting All Data-Bind Values Using JQuery
Solution 1
jQuery interprets the "data-something" attributes differently than other attributes. So you should select all your elements and look for their data bindings like this:
$(document).ready(function(){
$('input.InputText').each(function(){
var input = $(this);
if ($(input).data().bind) {
alert($(input).data().bind);
}
});
});
Then you can do string manipulation to parse out your values, I'd suggest using JSON and just loading it in like an object. Here's a working fiddle: http://jsfiddle.net/3NERK/6/
Solution 2
You can search for any element that has a data-bind
attribute by the jQuery attribute selector - $("[data-bind]")
, and then iterate on it with .each()
and construct the dataBinds
array out of it, stripping the value:
out of each value.
This will do the trick:
dataBinds = [];
$("[data-bind]").each(function(){
dataBinds.push($(this).attr("data-bind").substring(7));
});
I've set up an example of it: http://jsfiddle.net/dvirazulay/YPnwQ/
Solution 3
Get all elements with data-bind
attribute: $('[data-bind]')
Iterating these elements and manipulating the data-bind attribute:
$('[data-bind]').each(function(element,index){
var data_bind = $(element).data('bind');
alert(data_bind);
})
Solution 4
$( "[data-bind]" ).each( function() {
var elem = $( this );
alert( elem.data( "bind" ) );
});
Lemex
Updated on July 09, 2022Comments
-
Lemex almost 2 years
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); }) }
The above is my function and i want to read all inputs that have the properties data-bind within them for example
<input type="text" id="frmIn1-Officer" data-bind="value: AOfficer" class="InputText"/>
^ When running my function i would want it to return 'AOfficer' as that is the data-bind value.
So an example is
<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"/>
And in the for each loop i would like to be able to use the value of data bind.. e.g values[0] = 'AOfficer1'
Sorry if my explanation is slightly confusing, i have the idea in my head perfect but trying to put it in writing is alot harder.