2011-10-27 14 views
19

में हेरफेर करता है मैंने अपने प्रश्न पूछने का फैसला किया।jquery div के साथ div के अंदर div को जोड़ता है और खोज के 2 घंटे बाद

<div id="box"></div> 

मैं ऊपर div jQuery का उपयोग कर के अंदर एक div जोड़ना चाहते हैं:

मैं एक div है।

मैंने कोशिश की (निम्नलिखित कोड एक समारोह के अंदर है):

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$('div', e).attr('id', 'myid'); 
$("#box").append(e); 

लेकिन $ तक पहुँचने ("# MyID") काम नहीं कर रहा।

किसी div के अंदर div को जोड़ने और उन्हें कुशल बनाने में सक्षम होने के बारे में कोई विचार है?

धन्यवाद!

उत्तर

29

यह सिर्फ गलत क्रम

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$('#box').append(e);  
e.attr('id', 'myid'); 

संलग्न पहले और उसके बाद पहुँच/सेट attr है।

+0

कोड की तीन पंक्तियों का उपयोग क्यों करें, जब केवल एक की आवश्यकता हो? आईडी को बाद में क्यों संलग्न करें जब इसे सीधे स्रोत HTML में रखा जा सकता है? – jfriend00

+7

मैं बस मूल समस्या को हल करने की कोशिश कर रहा हूं, इसे सुधारने के लिए नहीं। –

+0

मैं उम्मीद कर रहा था कि ओपी देखेगा कि ऐसा करने का एक बेहतर तरीका था। – jfriend00

4

आप overcomplicating रहे हैं बातें:

var e = $('<div style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
e.attr('id', 'myid'); 
$('#box').append(e); 

उदाहरण के लिए: http://jsfiddle.net/ambiguous/Dm5J2/

0
var e = $('<div style="display:block; id="myid" float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 
$("#box").html(e); 
+0

'.html()' विधि एक स्ट्रिंग लेता है, एक jQuery ऑब्जेक्ट नहीं, क्योंकि यह तर्क है। – jfriend00

3

क्यों और भी आसान नहीं जा के साथ या तो इनमें से एक विकल्प:

$("#box").html('<div id="myid" style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 

या, यदि आप इसे मौजूदा सामग्री में जोड़ना चाहते हैं:

$("#box").append('<div id="myid" style="display:block; float:left;width:'+width+'px; height:'+height+'px; margin-top:'+positionY+'px;margin-left:'+positionX+'px;border:1px dashed #CCCCCC;"></div>'); 

नोट: मैंने इसे सेट करने के लिए अलग कोड का उपयोग करने के बजाय id="myid" सीधे HTML स्ट्रिंग में डाल दिया है।

.html() और .append() दोनों jQuery विधियां HTML की एक स्ट्रिंग ले सकती हैं इसलिए ऑब्जेक्ट्स बनाने के लिए एक अलग चरण का उपयोग करने की आवश्यकता नहीं है।

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