2010-12-12 4 views
0

Dire que j'ai les suivantes:Comment manipuler un élément dom au même niveau que celui en cours? - jQuery

<ul> 
    <li><img src='test.png'>  
     <div id=parentDiv> 
      <div><img='click-me-icon.png'></div> 
     </div> 
    </li> 
</ul> 

Ce que je voudrais faire, est lorsque le <img> le plus intérieur est cliquée, je veux ajouter une bordure à la <img> extérieure. Comment je fais ça?

J'ai tous les autres codes vers le bas ... c'est-à-dire. Je ferais quelque chose comme:

$('ul li div div img').click(function() { 
    $(this).css({ 'border' : '1px solid green' }); 
}); 

Je ne suis pas sûr de ce sélecteur/fonction de mettre en place de $ (ce) dans l'extrait de code ci-dessus.

+0

plus à l'extérieur ???. –

+0

@Amirouche nevermind mec. Déjà résolu. – marcamillion

Répondre

1

Modifier après avoir vu mise à jour OP:

$('ul li div div img').click(function() { 
    $(this).parents("li").children("img").css({ 'border' : '1px solid green' }); 
}); 
+0

Oui !!!!! Cela a fonctionné. Beau travail mec. – marcamillion

+0

@marcamillion: Pas de problème;) –

1
$('ul li div div img').click(function() { 
    $('img:eq(0)',$(this).closest('li')).css({ 'border' : '1px solid green' }); 
}); 

EDITv3 C'est ce que je cherchais. Une façon différente d'arriver à la même solution, mais je voulais publier la version de travail. ;-)

+0

J'ai mis à jour la question pour ajouter le formatage d'échappement de code. J'ai également mis à jour le code HTML pour mieux refléter une représentation plus précise de ce à quoi ressemble ma structure. appeler parent() ne fonctionnera pas. – marcamillion

+0

Cela semblait très prometteur, mais cela ne fonctionne pas. Voir: http://jsfiddle.net/SB4m2/ Je me sens comme si vous étiez sur la bonne voie si :) – marcamillion

+0

@mar ou bard, img frontière fonctionne si vous utilisez la propriété de contour, mais la propriété de contour agian ne fonctionne pas pour IE, alors essayez de donner une bordure à son parent qui est li ou enveloppez-le autour d'un autre div – kobe

1

votre code ressemble correct.it ADDES frontière div à la div comme, qui est l'élément en cours dans le clic

J'ai fait par exemple à partir de votre code ici

http://jsfiddle.net/QzRUE/

let moi savoir si vous avez besoin d'autre chose

si vous voulez pour l'élément de parent, vous pouvez le faire

$(this).parent().css({ 'border' : '1px solid green' }); 
+0

Cela ne fonctionne pas dans ce cas. J'ai mis à jour le HTML dans la question. J'ai également fourchu un nouveau JS Fiddle - http://jsfiddle.net/etmNH/1/ - afin que vous puissiez voir plus précisément avec quoi je travaille. Je souhaite que l'image supérieure soit mise en surbrillance lorsque l'utilisateur clique sur l'image la plus profonde. Merci. – marcamillion

+0

@pour l'image limite son contour, mais il ne fonctionne pas pour IE, alors s'il vous plaît envelopper un div ou quelque chose et donner une bordure ... – kobe

+0

Merci d'avoir essayé, mais Andrew l'a eu. – marcamillion

Questions connexes