2009-07-15 16 views
6
<div class="item"> 
    <p><img src="images/photos_sample1.jpg" 
      border="0" rel="images/google_map.jpg"></p> 
    <p>Dining Area</p> 
</div> 
<div class="item"> 
    <p><img src="images/photos_sample2.jpg" 
      border="0" rel="images/sample_photo.jpg"></p> 
    <p>Pool Area</p> 
</div> 

मेरे पास उपरोक्त HTML कोड है और मैं छवि पर क्लिक करते समय rel विशेषता का मान प्राप्त करना चाहता हूं। मैं इस jQuery पटकथा लिखी है, लेकिन यह काम करने के लिए प्रतीत नहीं होता:jQuery के साथ attr कैसे प्राप्त करें?

var getvalue = $('this > p > img').attr('rel'); 
इस के साथ

:

$('div.item').click(function() { 
    var getvalue = $('this > p > img').attr('rel'); 
    alert(getvalue); 
}); 

उत्तर

11

इस बदलें

var getvalue = $(this).find('p > img').attr('rel'); 

अभी आप कर रहे हैं के रूप में शाब्दिक टैग नाम वाले तत्वों के लिए वैश्विक खोज this

एक समतुल्य कोड भी होगा:

var getvalue = $('p > img', this).attr('rel'); 

हालांकि इसके बारे में दिखता द्वारा आइटम छवि/शीर्षक संयोजन कर रहे हैं और आप वास्तव में अन्य छवियों की उम्मीद नहीं है, जो मामले में यह बेहतर है बस करना है:

var getvalue = $(this).find('img').attr('rel'); 

या हो सकता है देना यह एक वर्णनात्मक वर्ग है और img को img.someclassname के साथ प्रतिस्थापित करें - इससे यह होगा कि यदि आप अपने जावास्क्रिप्ट पर बाद में अपना HTML संपादित करते हैं तो आपके विशिष्ट चयनकर्ता के कारण नहीं टूट जाता है।

इसके अलावा, आप बस छवियों को क्लिक करें घटना के लिए बाध्य कर सकता है खुद को:

$('div.item img').click(function() { 
    var getvalue = $(this).attr('rel'); 
}); 
0
$('div.item').click(function() { 
     var getvalue = $(this).find('> p > img').attr('rel'); 
     alert(getvalue); 
     }); 
0

आप इस 'इस तरह उपयोग नहीं कर सकते।

प्रयास करें:

$('div.item').click(function() { 
     var getvalue = $('p > img', this).attr('rel'); 
     alert(getvalue); 
     }); 
संबंधित मुद्दे