2009-09-24 6 views
0

je me demandais comment j'aller sur la mise en œuvre ceci:champ jQuery pour les parents ID

<div id="1234345" class="item"> 
<script type="text/javascript"> 
function getItem() { 
alert($(this).attr('id')); // I want this to be 1234345 
} 
getItem(); 
</script> 
</div> 

<div id="1239345" class="item"> 
<script type="text/javascript"> 
function getItem() { 
alert($(this).attr('id')); // I want this to be 1239345 
} 
getItem(); 
</script> 
</div> 

Aucun d'entre eux le travail, mais je dois vous assurer que les deux parties ont exactement le même code, mais revenir à droite ids.

+2

Heh, c'est un vœu pieux (bien que ce soit une approche intéressante pour les scripts DOM). –

+0

Désolé, mais c'est une approche vraiment horrible pour les scripts DOM. Avez-vous même lu la documentation de jQuery lorsque vous avez commencé à l'utiliser? –

Répondre

1
 
<div id="1234345" class="item"> 
    <script type="text/javascript"> 
    document.write('<div id="unique_id"></div>'); 
    function getItem() { 
     alert($('div#unique_id').parent().attr('id')); // this will be 1234345 
     $('div#unique_id').remove(); 
    } 
    getItem(); 
    </script> 
</div> 
+0

Pour ie s'exécuter dans timer: setTimeout (getItem, 100); – Anatoliy

+0

Nous devons utiliser des identifiants uniques pour nos divs que nous ajoutons à nos divs. – Anatoliy

0

Vous avez comment javascript interagit avec html en arrière, le js il n'y a pas exécuté dans le contexte de l'étiquette de script.

0

En plus de fredrikholmstrom répondre à la deuxième fonction « getItem » détruira le premier, vous obtiendrez un seul.

0

tout d'abord votre carte d'identité ne sont pas selon HTML 4 spec

ID et jetons Le nom doit commencer par une lettre ([A-Za-z]) et peut être suivie n'importe quel nombre de lettres, chiffres ([0-9]), traits d'union ("-"), traits de soulignement ("_"), deux-points (":") et points (".").

Et

Ne pas mélanger votre javascript HTML balisage. Gardez les deux comme séparés.

Vous pouvez utiliser

$(".item").attr ("id"); 

pour obtenir l'identifiant du divs

0

Est-ce ce que vous aviez fait à l'esprit?

<div class="item"> 
<input type="hidden" value="1239345"/> 
<span class="button">Click me</span> 
</div> 

<div class="item"> 
<input type="hidden" value="45454443"/> 
<span class="button">Click me</span> 
</div> 

<script type="text/javascript"> 
$('div.item span.button').click(function() 
{ 
    alert($(this).closest('div.item').children('input[type=hidden]').val()) 
}) 
</script> 
0

Compte tenu de ce balisage

<div id="1234345" class="item"></div> 
<div id="1239345" class="item"></div> 

la manière jQuery pour obtenir les ids seraient

$(function() { 

    // get an array of the matching element ids 
    var ids = $.map($('div.item'), function(v) { return v.id }); 

    // concatenate string from the array values 
    alert(ids.join(',')); 

}); 

ou peut-être que vous vouliez un gestionnaire d'événements de clic pour chaque <div class="item">

$(function() { 

    // attach a click event handler to all <div class="items"> 
    // that exist when DOM has finished loading 
    $('div.item').click(function() { 
     alert(this.id); 
    }); 

}); 
0
$(document).ready(function(){  
    $(".item").each(function(){ 
     $("#"+this.id).html(GetItem(this.id)); 
     }); 
}); 

Vous pouvez ajouter ceci à votre page. devrait fonctionner à moins que vous ne vouliez l'attacher à un événement click pour un ".item"