attribut d'un élément (enfant d'un div)

Par aluc, il y a 10 ans


Bonjour,
j'ai un div qui contient une balise objet.
je souhaite récupérer à partir de l'id de mon div, l'attribut data de ma balise objet.

malgré plusieurs tests je bloque !!

merci d'avance pour votre aide

11 réponses

betaWeb, il y a 10 ans

Salut,

Tu peux le faire facilement via jQuery:

var data = $('object', 'div#element_id').attr("data");

Sinon, en JS pur tu peux essayer comme suit:

var div = document.getElementById("element_id"); var obj = div.querySelector("object"); var data = obj.attr('data');
Vallyan, il y a 10 ans

Le second exemple est juste, mais pas celui qui utilise jQuery. Ce devrait etre:

$('div#elementId > object').attr('data');
betaWeb, il y a 10 ans

@Vallyan c'est une autre façon de faire, mais les deux sont parfaitement valable et fonctionneront.

Vallyan, il y a 10 ans

Ah bah oui, tiens ! :p
Il y a une différence suivant que les quotes englobes tout ou que chaque selecteur ait les siennes !

Vais me coucher moins con ce soir ... Toutes mes confuses @betaWeb ^^

betaWeb, il y a 10 ans

@Vallyan si je voulais vraiment écrire ce que tu as écrit, je pouvais aussi faire:

var data = $('> object', 'div#element_id').attr("data");

Mais dans tous les cas, les deux notations sont fonctionnelles ;)

aluc, il y a 10 ans

J'ai pas l'impression que ça fonctionne... mais peut-être que mon code vous éclairera :

<a href="#" class="toto" title="tlc-0-0">Vidal Claramonte</a><b/><b/> <div class="tata" id="tlc-0-0"><object id="ob" data="monpdf.pdf" type="application/pdf" title="" width="1000px" height="900px" align="center"></object></div> <script type="text/javascript"> $(document).ready(function(){ $('.toto').click(function(){ var info = $(this).attr("title"); var div = document.getElementById(info); var obj = div.querySelector("object"); var data = obj.attr('data'); alert(data); }); }); </script>

J'aimerais pouvoir récupérer l'information : monpdf.pdf

betaWeb, il y a 10 ans
<a href="#" class="toto" title="tlc-0-0">Vidal Claramonte</a><b/><b/> <div class="tata" id="tlc-0-0"><object id="ob" data="monpdf.pdf" type="application/pdf" title="" width="1000px" height="900px" align="center"></object></div> <script type="text/javascript"> $(document).ready(function(){ $('.toto').click(function(){ var info = $(this).attr("title"); var data = $('object', '#' + info).attr("data"); alert(data); }); }); </script>
aluc, il y a 10 ans

et si j'applique juste : var data = $('> object', info).attr("data");

j'ai la box alert : undefined

aluc, il y a 10 ans

Merci à vous deux pour commencer ;O)

@betaWeb :
pour div#tlc-0-0 j'ai ma variable info...

mais ça affiche toujours undefined...

aluc, il y a 10 ans

Merci à tous !!

special thanks @betaWeb

Huggy, il y a 10 ans

var data = $('#' + info + ' > object').eq(0).attr("data");