सबसे अच्छा तरीका है प्रोटोटाइप या jQuery का उपयोग कर .lastChild लागू करने के लिए

वोट
6

वर्तमान में हम हमारे js चौखटे के रूप में प्रोटोटाइप और jQuery का उपयोग कर रहे हैं। अभी, jQuery प्रोटोटाइप से संघर्ष को रोकने के लिए $ जे () को तैयार है।

अतीत में, हम के प्रोटोटाइप के डोम Element.down (), Element.next (), और Element.previous () पार करने का एक बहुत उपयोग किया है। हालांकि, मैं पिछले चाइल्ड तत्व को पुनः प्राप्त करने का आसान तरीका की जरूरत है। मैं जानता हूँ कि मैं Element.childElements का उपयोग करके एक सरणी () के माध्यम से लूप कर सकते हैं, लेकिन मैं कुछ इनलाइन कि सफाई से पढ़ता है और pipelined किया जा सकता है करना चाहते हैं।

बस सोचा था कि इससे पहले कि मैं पहिया पुनर्रचना जाना मैं पूछना होगा। यहाँ है कि यह में lastChild है कोड का एक टुकड़ा बदला जाना आवश्यक है कि बताया गया है:

_find : function(rows, address) {
        var obj = null;
        for (var i=0; i < rows.length && obj == null; i++) {
            if (rows[i].down().className == 'b')
                obj = this._find(rows[i].lastChild.down().down().childElements(), address);
            else if (rows[i].lastChild.getAttribute('tabAddress') == address)
                return rows[i].lastChild;
        }
        return obj;
    }
22/10/2008 को 18:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


5 जवाब

वोट
1

इस यह हमेशा jQuery में मेरे लिए काम किया है की कोशिश करो

var lastChild = $("#parent :last-child");

http://docs.jquery.com/Selectors/lastChild

22/10/2008 को 19:00
का स्रोत उपयोगकर्ता

वोट
1

प्रोटोटाइप का उपयोग करके आप उपयोग कर सकते हैं $$ उपयोगिता समारोह जो CSS3 के वाक्य रचना के सबसे समर्थन करता है:

var lastChild = $$(".b:last-child")[0];
22/10/2008 को 19:06
का स्रोत उपयोगकर्ता

वोट
21

दोस्तों, ध्यान दें, कि चयनकर्ता कार्यों तत्वों (नहीं एक तत्व) की सरणियों लौट ताकि आप सूचकांक द्वारा परिणाम सरणी में तत्व adddress चाहिए: [0]।

प्रोटोटाइप में कोड

//if you only have the id of the parent
var lastChild = $$("#parent :last-child")[0]; 
//or
//if you have the actual DOM element
var lastChild = $(element).select(":last-child")[0]; 

Jquery में कोड

//if you only have the id of the parent
var lastChild = $("#parent :last-child")[0]; 
//or
//if you have the actual DOM element
var lastChild = $(":last-child", element)[0]; 

सादे वेनिला में कोड जावास्क्रिप्ट

var element = document.getElementById("parent");
var lastChild = element.childNodes[element.childNodes.length - 1];

यह भी ध्यान रखें कि इन अशक्त लौटा सकते हैं या पेरेंट तत्व कोई भी बच्चा नोड हैं।

23/10/2008 को 03:35
का स्रोत उपयोगकर्ता

वोट
0

मामले में किसी को भी वेब की खोज करने के लिए अपने सवाल का जवाब देने, प्रोटोटाइप आप कर सकते हैं के साथ इस जबकि पाता है:

Element.childElements().last();
27/03/2013 को 16:13
का स्रोत उपयोगकर्ता

वोट
0

किसी और के संदर्भ जो अभी भी प्रोटोटाइप का उपयोग करता है के लिए, आप कस्टम तत्व तरीकों जोड़ सकते हैं:

Element.addMethods({ ... });

मैं अन्य लोगों के अलावा इन दोनों कहा:

first: function(element) {
    element = $(element);
    return element.childElements()[0];      
},
last: function(element) {
    element = $(element);
    var i = element.childElements().size() - 1;
    return element.childElements()[i];
}

var first = $('foo').first();
var last = $('foo').last();

Element.first()विधि एक तरह से बेमानी है, मैं इसे क्लीनर दिखने कोड के लिए उपयोग करते हैं चेनिंग।

आप सुनिश्चित करें कि reutrn elementश्रृंखलन सक्षम करने के लिए।

06/06/2016 को 18:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more