2013-09-06 20 views
5

मैं नव jQuery और जावा स्क्रिप्ट सीख रहा हूँ, वर्तमान में मैं छिपा बटन दिखाने में एक समस्या का सामना करना पड़ रहा है, मेरे एचटीएमएलपार बटन को पार करने वाली

<span style="float:left;padding-right:10px"> 
    <input type="button" value="image" class="delete" /> 
    <a href="/media/image"><img src="/media/image" /></a> 
</span> 
<span style="float: left; padding-top: 5px;"> 
    <a href="/media/image"> 
     <button type="submit" class="delete_media">Delete</button> 
    </a> 
</span> 

है Jquery:

$(".delete").click(function(){   
var $this = $(this); 
$this.siblings(".delete_media").toggle();    
}); 

सीएसएस :

.delete_media {  
    display:none; 
    float: right; 
    height: 25px; 
    width: 60px; 
    -moz-border-radius: 10px; 
    border-radius:10px;  
} 

इसके अलावा मैं का उपयोग कर, nextAll, करीबी भी कुछ नहीं तो काम किया यह काम करने के लिए कैसे की कोशिश की।

डेमो Here

उत्तर

2

इस

$this.closest('span').next().find(".delete_media").toggle(); 

DEMO

+0

यह वास्तव में वर्तमान डोम के साथ मिलकर है। – Itay

+0

@ user2725407 यह उस क्षण काम करना बंद कर देगा जब आप अपना डोम थोड़ा बदल देंगे। आइए कहें कि आप इन दो स्पैन के बीच एक छवि जोड़ देंगे, यह समाधान – Itay

+0

काम करना बंद कर देगा आपके समाधान का उपयोग .... स्वीकार किया गया – user2725407

1

आप भाई-बहनों का उपयोग कर रहे हैं, लेकिन वे एक ही कंटेनर पर नहीं कर रहे हैं। अन्य ट्रैवर्सिंग फ़ंक्शन नौकरी भी नहीं करेगा क्योंकि उन दो बटनों में एक सामान्य कंटेनर नहीं है।

बस वर्ग

$(".delete").click(function(){   
    var $this = $(this); 
    $(".delete_media").toggle();    
}); 

यह है कि आप एक आम कंटेनर के साथ उन दो बटन लपेट देंगे सलाह दी जाती है के द्वारा यह खोज करते हैं।

यहाँ एक उदाहरण है

<div data-action="delete"> 
    <span style="float:left;padding-right:10px"> 
     <input type="button" value="image" class="delete" /> 
     <a href="/media/image"><img src="/media/image" /></a> 
    </span> 
    <span style="float: left; padding-top: 5px;"> 
     <a href="/media/image"> 
      <button type="submit" class="delete_media">Delete</button> 
     </a> 
    </span> 
</div> 

$(".delete").click(function(){   
    var $this = $(this); 
    $this.closest("div[data-action='delete']") 
          .find(".delete_media").toggle();    
}); 
+0

प्रयास करें यह अगर ओपी उन तत्वों के कई है और केवल एक ही है कि से संबंधित है टॉगल करने के लिए चाहता है असफल हो जायेगी हटाएं बटन आप इस पंक्ति का उपयोग नहीं करते हैं 'var $ this = $ (this); '। – insertusernamehere

+0

कोई आम कंटेनर नहीं है ... .parent() और .next() आदि के साथ अन्य समाधान वास्तव में DOM – Itay

+0

@ user2725407 के साथ मिलकर होंगे, इसलिए उन्हें एक सामान्य कंटेनर पर रखें। मेरा अपडेट देखें – Itay

संबंधित मुद्दे