2017-10-16 7 views
1

Ma page contient un tableau d'éléments. Chaque rangée a une étiquette de données (identifiée comme "reckey" parce que c'est ainsi que la base de données a été mise en place des années avant que j'arrive sur la scène). En parcourant mon javascript en construisant la table, je peux voir que les balises sont correctement définies. Cette ligne:jquery balise de données ne renvoyant pas les valeurs

$("#tblActivities tbody tr:first").data("reckey") 

renvoie la valeur '122157'. Mais quand j'essaie de chercher cette ligne à l'aide de cette ligne:

$("#tblActivities tbody tr[data-reckey='122157']") 

mon navigateur indique que ce n'est pas défini. J'ai aussi essayé comme

$("#tblActivities tbody tr[attr-data-reckey='122157']") 

et juste pour s de & g de, j'ai essayé

$("#tblActivities tbody tr[data-reckey]"), which still returned undefined. 

Quelqu'un peut-il s'il vous plaît me montrer ce que je suis absent? Je ne serais pas du tout surpris s'il s'agit d'une simple erreur de syntaxe, même si j'espère que c'est quelque chose de plus profond si seulement je ne me sens pas aussi complètement idiot.

Merci,

+1

Les données ajoutées via javascript ou html simple 'data-reckey = 122157'? aussi, quelle version de jquery utilisez-vous? –

+1

https://stackoverflow.com/a/11673313/123422, éventuellement? –

+0

@UnamataSanatarai, j'ajoute la balise de données via javascript, mais je pourrais changer cela pour l'inclure dans la chaîne qui construit le HTML à la place. En ce qui concerne la version, j'utilise 2.2.0. – mforbes

Répondre

1

Puisque vous ajoutez l'attribut de données avec Javascript, vous ne serez pas en mesure de le sélectionner directement (via le $('[data-reckey="122157"]'), comme il stocke jQuery les données contenues dans l'objet jQuery, pas le html .

donc, si vous le pouvez, soit placer le data-reckey="" directement en HTML, ou itérer éléments, par exemple comme ceci:

$("#tblActivities tbody tr").each(function() { 
    if ($(this).data('reckey') === '122157') { 
     // found the element... 
    } 
}); 
0

pour confirmation dans le cas où quelqu'un d'autre recherche pour ce même problème plus tard: la solution était d'inclure la balise de données au moment où le code HTML est créé au lieu de le modifier via jquery plus tard.