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
Réponse acceptée
<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>

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');

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

$('div#elementId > object').attr('data');

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

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 ^^

@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
Auteur

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

aluc
Auteur

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

j'ai la box alert : undefined

aluc
Auteur

Merci à vous deux pour commencer ;O)

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

mais ça affiche toujours undefined...

aluc
Auteur

Merci à tous !!

special thanks @betaWeb

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