2010-03-05 10 views
5

मैं स्कूल के लिए एक बहु फ़ीड आरएसएस रीडर के निर्माण कर रहा हूँ के साथ।एक गैर-अद्वितीय div करने के लिए लेखन जावास्क्रिप्ट

एलीस्ट वह div है जिसमें प्रत्येक व्यक्तिगत फ़ीड शामिल है (फ़ीड की मात्रा में उतार-चढ़ाव होगा)।

theTitle div है जो वर्तमान फ़ीड की विशेषता से भरा जाएगा। इसके अतिरिक्त, यदि क्लिक किया गया है, तो यह वर्तमान फ़ीड से सामग्री में गुणों की एक सूची लोड करेगा।

मैं सोच रहा हूं कि जब टिटल क्लिक किया जाता है तो मैं सामग्री में गतिशील रूप से गुणों को कैसे लोड कर सकता हूं, क्योंकि सामग्री और टिटल गैर-अद्वितीय divs (मैं उन्हें आईडी नहीं दे सकता) होने जा रहा हूं।

अग्रिम में आपकी मदद के लिए धन्यवाद,

एंड्रयू

उत्तर

1

document.getElementsByClassName ('alist')। GetElementsByTagName ('div')

+0

ईमानदारी से मैंने उम्र में MooTools जैसी लाइब्रेरी का उपयोग किए बिना इस तरह कोड नहीं लिखा है। मुझे लगता है कि मोज़िला मूल रूप से getElementsByClassName का समर्थन करता है लेकिन आईई नहीं। गूगल पर एक कस्टम कार्यान्वयन में देखो। – kwcto

+0

यहां का जवाब "getElementsByTagName" के बारे में है, कक्षा का नाम नहीं। आईई इसका समर्थन करता है। – Pointy

+0

getElementsByClassName भी है ...? – rjh

1

आपको लगता है कि और अन्य के लिए jQuery चयनकर्ताओं ध्यान देना चाहिए डोम मैनिपुलेशन। jQuery का उपयोग करके

$("div.theContent").attr("name", "value"); 
1

की तरह कुछ है, तो आप की तरह कोड का उपयोग कर सकते हैं:

$(".theTitle").bind("click", function(){ 
    $el = $(this); 
      $el.parent().$(".theContent").load('ajax/content.php?news=' . $el.text()); 
}); 

इस आपके सभी लिंक क्लिक करने योग्य, क्लिक पर एक, अद्यतन साथ उनकी संगत सामग्री divs कर देगा AJAX/content.php का मान? news = theTitle-value

0

आपको यह निर्धारित करने में सक्षम होना चाहिए कि आप कौन सा तत्व अपडेट करना चाहते हैं यदि आप अधिक अपडेट नहीं करना चाहते हैं एक। यदि तत्वों को किसी अन्य चीज़ के अंदर समूहीकृत किया गया है जो में "आईडी" मान है, तो आप इसका लाभ उठा सकते हैं।

1
<div class="aList"> 
<div class="theTitle" onclick="fillContentBox(this)"></div> 
<div class="theContent"></div> 
</div> 

और अपनी स्क्रिप्ट में ...

function fillContentBox(div) { 
    var theContentDiv = div.parentNode.getElementsByTagName("div")[1]; 
    // statements that do things with theContentDiv 
} 
1

ऐसे Prototype या jQuery के रूप में एक अच्छा जावास्क्रिप्ट पुस्तकालय का उपयोग करें। अब बहुत कम लगता है, लेकिन ये ढांचे आपको लंबे समय तक टन बचाते हैं।

दोनों चौखटे में, आप के साथ है कि div चुन सकते हैं:

$('div.theTitle') 
jQuery के साथ

, आप कर सकते हैं:

$('div.theTitle').click(function() { 
    var title = $(this).text(); 
    var contentDiv = $(this).siblings('div.theContent'); 
    // Do something with contentDiv and the title 
}); 

यह कर देगा हर theTitle div करता है एक onClick ईवेंट है इसके साथ जुड़े सामग्री के साथ कुछ।

+0

बस एक एफवाईआई: आप इसे कम कर सकते हैं: '$ (यह)। बाइबिलिंग ('। सामग्री'); 'या छोटा:' $ (यह) .next (' .content '); ' –

+0

अपडेटेड पोस्ट, धन्यवाद:) – rjh

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