एक तत्व की parentNode
संपत्ति आपको इसके मूल नोड देता है। तत्वों में insertBefore
फ़ंक्शन है जो किसी अन्य संदर्भ तत्व से पहले तत्व को सम्मिलित करता है (यदि यह पहले से ही पेड़ में कहीं और है) इसे ले जा रहा है। और नोड्स में previousSibling
है जो आपको पिछले भाई नोड (जो तत्व हो सकता है या नहीं भी) देता है। तो:
function swapDiv(elm) {
var previous = findPrevious(elm);
if (previous) {
elm.parentNode.insertBefore(elm, previous);
}
}
... जहां findPrevious
इस तरह दिखता है:
function findPrevious(elm) {
do {
elm = elm.previousSibling;
} while (elm && elm.nodeType != 1);
return elm;
}
... जहाँ आपके onclick
गुण होना चाहिए:
onclick="swapDiv(this);"
... यद्यपि आप कर सकते हैं इसके बजाय डीओएम 2 इवेंट हुकिंग में देखें (addEventListener
, या attachEvent
आईई पर)।
थोड़ा OT, लेकिन मुझे लगता है कि अपने जीवन को आसान बनाने उपलब्ध कई पुस्तकालयों में से किसी का उपयोग करना चाहिये कर सकते हैं, इस तरह के Prototype, jQuery, Closure, या any of several others के रूप में। वास्तव में, इसके पहले के संस्करण में एक त्रुटि हुई क्योंकि यह लंबा था क्योंकि मैंने सीधे डीओएम के साथ निपटाया था। :-)
स्रोत
2010-05-31 11:25:17
और यदि div 1 क्लिक किया गया है? –
यदि div 1 है तो कोई स्वैपिंग नहीं ... –
केवल सामग्री, या पूरे तत्वों को स्वैप करें? – karim79