Disons que j'ai ceci
<div id="x" data-id='1' data-prop1='peace' data-prop2='out'>Text</div>
En jQuery, je peux obtenir les données comme suit
var row = $('#x')
var x = {
id : row.data('id'),
prop1: row.data('prop1'),
prop2: row.data('prop2'),
};
ce serait beaucoup plus pratique si je pouvais faire quelque chose comme ça
var row = $('#x');
var x = row.data.serialize();
Quelqu'un sait comment faire ?
EDIT :
J'ai oublié de mentionner que var x = row.data() fera l'affaire mais il y a tout ce jquery là-dedans.
Je veux envoyer les données dans le cadre d'une requête ajax une fois que je les ai obtenues.
eg,
remove: function (row, g, o) {
if (confirm(o.deleteConfirmation)) {
var url = o.deleteAction;
var data = row.data();
$.ajax({
url: url,
type: 'POST',
// THIS WORKS
// data: {
// id: row.data('id'),
// applicationId: row.data('applicationId')
// },
// THIS DOESN'T
data : data,
success: function (result) {
g.html(result.Html);
methods.rebind(g, o);
}
});
}
}
EDIT : Ma solution qui fonctionne
Je l'ai fait fonctionner en supprimant le truc jQuery{some number} de l'objet de données.
J'ai d'abord pris ceci sur ici
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(str) {
return !this.indexOf(str);
};
}
Puis j'ai dû faire ça :
var rowData = row.data();
var data = {};
for(var propertyName in rowData) {
if(!propertyName.startsWith('jQuery'))
data[propertyName] = rowData[propertyName];
}