2012-04-23 20 views
5

के साथ div जोड़ें, तो मैं यहां add a div पर और यहां add a class पर कैसे देखता हूं लेकिन मुझे दोनों को जोड़ने में समस्या हो रही है। मैं div sparkLineContainer के भीतर एक विशिष्ट वर्ग और आईडी के divs का एक पूरा समूह उत्पन्न करना चाहता हूँ।jquery, वर्ग परिभाषा

मैं युक्त div

<div id="#sparkLineContainer"></div> 

है और मैं यह करने के लिए निम्न

<div id="#sparkLineContainer"> 
     <div class="sparkLines" id="id1">Some stuff here</div> 
     <div class="sparkLines" id="id2">Some stuff here</div> 
     <div class="sparkLines" id="id3">Some stuff here</div> 
// and so on 
    </div> 

टुकड़ा का एक समूह जोड़ना चाहते हैं - मैं इसे बहुत दूर नहीं किया, मैं कर रहा हूँ स्टंप्डया

$('#sparkContainer').add("div"); \\ How do I add the id and class to this div? 
            \\ And as a repeat the function will it overwrite this? 

फ़ंक्शन मैं इसे करने का प्रयास कर रहा हूं।

function renderSparklines (array1, sparkLineName, id) { 
// array1 is the data for the spark line 
// sparkLineName is the name of the data. 
// Turn all array values into integers 
arrayStringToInt(array1); 

    // Create new div of class sparkLines 
$('#sparkContainer').add("div") 

    // Render new spark line to 
$('.sparkLines').sparkline(array1, {width:'90px'}); 

var htmlString = ""; // Content to be added to new div 
// GENERATE LITTLE SPARK BOX 
    htmlString += 
       '<font class = "blueDescriptor">' + sparkLineName + '</font>'+ 
       '<br>'+ 
       '<font class = "greyDescriptorSmall">Ship to Shore</font>'+ 
       '<br>'+ 
       '<font class = "blackDescriptorSparkLine">' + array1[array1.length-1] + '</font>'+ 
       '<font class = "greenDescriptorSparkline">(' + (array1[array1.length-1] - array1[array1.length-2]) + ')</font>' + 
       '<br>'; 
    $('.sparkLines').prepend(htmlString); 

}

+0

.add() फ़ंक्शन का नहीं जोड़ता है एक div यह सिर्फ मिलान चयनकर्ता को जोड़ता है। –

उत्तर

8

कंटेनर में एक div जोड़ने के लिए आपको .append या .prepend की आवश्यकता है। नीचे मेरी संस्करण देखें,

var $sparkLines = $('.sparkLines'); 
$("#sparkLineContainer") 
    .append('<div id="id' + 
      ($sparkLines.length + 1) + 
      '" class="sparkLines">Some Stuff Here</div>') 

इसके अलावा मैंने देखा आप #sparkLineContainer के रूप में div की आईडी है। आप नीचे के रूप में यह बदलना चाहिए,

<div id="sparkLineContainer"> 
... 

DEMO

+0

मैंने एक ही कोड का उपयोग किया लेकिन मेरे div नाम आदि के साथ और सामग्री में कोई div जोड़ा नहीं गया था और कोई त्रुटि नहीं थी। – rd42

+1

@ rd42 मेरे लिए काम करता है http://jsfiddle.net/skram/KU4Ry/1/। मार्कअप में भी div आईडी को 'स्पार्कलाइन कोंटेनर' में बदलना सुनिश्चित करें, '#sparkLineContainer' नहीं। –

+0

धन्यवाद, मैं बस JSFiddle को कोशिश कर रहा था – rd42

14

add आप क्या सोचते हैं यह करता है नहीं करता है। आप append या कुछ इसी तरह के लिए देख रहे हैं।

आप div पहले बना सकते हैं और उसके गुण और सामग्री को परिभाषित कर सकते हैं, तो यह संलग्न:

var $newDiv = $("<div/>") // creates a div element 
       .attr("id", "someID") // adds the id 
       .addClass("someClass") // add a class 
       .html("<div>stuff here</div>"); 

$("#somecontainer").append($newDiv); 
+0

मैंने एक ही कोड का उपयोग किया लेकिन मेरे div नाम आदि के साथ और सामग्री में कोई div जोड़ा नहीं गया था और कोई त्रुटि नहीं थी। – rd42

+0

सभी पोस्ट किए गए उत्तरों को काम करना चाहिए, अगर वे नहीं करते हैं तो आप उन्हें लागू करने में कुछ गलत कर रहे हैं। –

1

शायद सबसे आसान तरीका है innerHTML सिर्फ संशोधित करने के लिए है:

$("#sparkLineContainer").append('<div class="sparkLine" id="id1"></div>'); 

वहाँ के रूप में अन्य तरीकों से है अच्छा, लेकिन यह वह तरीका है जिसका मैं आम तौर पर उपयोग करता हूं।

+0

#sparkLineContainer के अंदर मौजूदा div सामग्री को प्रतिस्थापित करेगा। अच्छा नहीं! –

+0

इसे जोड़ने के लिए संशोधित किया गया। मैं मान रहा था कि यह शुरुआत में खाली था। –

+0

मैंने एक ही कोड का उपयोग किया लेकिन मेरे div नाम आदि के साथ और सामग्री में कोई div जोड़ा नहीं गया था और कोई त्रुटि नहीं थी। – rd42

2

आप एक div या की तरह वर्ग के साथ-साथ किसी अन्य टैग को जोड़ने कर सकते हैं:

$('<div/>',{ class : 'example'}).appendTo("p");

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