2011-03-09 8 views
9

मैं निम्नलिखित कोड मिला है और मैं इसे एक वर्ग पर बजाय एक आईडी पर मिलान करने के लिए कोशिश कर रहा हूँ:जेएस प्रोटोटाइप कक्षा द्वारा तत्व प्राप्त करते हैं?

एचटीएमएल:

<div id='testdiv'> 
    <div class="lol"> 
     [First Title|<a class="external" href="http://test.com">http://test.com</a>] 
     Another line 
     [Second Title|<a class="external" href="http://test.com">http://test.com</a>] 
     More text 
     [Third Title|<a class="external" href="http://test.com">http://test.com</a>] 
    </div> 
</div> 

जावास्क्रिप्ट:

var textContainer = document.getElementById("testdiv"); 
var linkText = textContainer.innerHTML; 
var pattern = /\[([^|]+)\|([^>]+.?)[^<]*(<\/a>)\]/g; 
var result = linkText.replace(pattern, "$2$1$3"); 

textContainer.innerHTML = result; 

पूर्ण उदाहरण: http://jsfiddle.net/JFC72/17/

मैं इसे "myclass" पर कैसे बना सकता हूं? धन्यवाद!

उत्तर

0

वर्ग और आईडी के बीच अंतर केवल एक आइटम एक ही आईडी हो सकता है, लेकिन और अधिक आइटम एक ही कक्षा हो सकता है।

यो आप एक ही कक्षा के साथ आइटम आपको लगता है चाहिए चयन करना चाहते हैं, तो aboute वहाँ हमेशा एक आइटम

onload=function(){ 
if (document.getElementsByClassName == undefined) { 
    document.getElementsByClassName = function(className) 
    { 
     var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)"); 
     var allElements = document.getElementsByTagName("*"); 
     var results = []; 

     var element; 
     for (var i = 0; (element = allElements[i]) != null; i++) { 
      var elementClass = element.className; 
      if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) 
       results.push(element); 
     } 

     return results; 
    } 
} 
} 

मैं इस काम करता है आशा नहीं है।

आप भी jQuery वर्ग चयनकर्ता http://api.jquery.com/class-selector/

9

उपयोग कर सकते हैं मैं तुम्हें $$ विधि की जरूरत है। यह डीओएम तत्वों का चयन करता है जो एक सीएसएस चयनकर्ता सख्त से मेल खाते हैं। इस मामले में आप

var elements = $$('.myclass'); 

यह दस्तावेज़ आदेश में सभी मिलान करने वाले तत्वों की एक सूची देता है। आप उनकी तरह each

http://www.prototypejs.org/api/utility

चीजों के साथ उन सभी को पर सूचकांक या ऑपरेटिंग तक पहुंच सकते हैं यह वही है प्रोटोटाइप के बारे में है। getElementById

3

oooold है यहाँ कैसे आप each प्रोटोटाइप को भी लूप में सभी तत्वों के माध्यम से order-cc-charged के एक वर्ग के साथ प्रयोग करेंगे की एक काम उदाहरण है।

var order_cc_charged = 0; 

$$('order-cc-charged').each(function (elem) { 
    order_cc_charged += parseFloat($('order-cc-charged').innerHTML); 
}); 
संबंधित मुद्दे