हाँ, आप ऐसा कर सकता है। लेकिन कुछ चेतावनी के साथ। यह गारंटी देने में सक्षम होने के लिए कि चयनकर्ता अद्वितीय हैं, आपको :nth-child()
का उपयोग करना होगा जो सार्वभौमिक रूप से समर्थित नहीं है। यदि आप फिर इन सीएसएस चयनकर्ताओं को सीएसएस फाइलों में रखना चाहते हैं, तो यह सभी ब्राउज़रों में काम नहीं करेगा।
मैं कुछ इस तरह से यह करना चाहते हैं:
function() {
if (this.id) {
return sendToServer('#' + this.id);
}
var parent = this.parentNode;
var selector = '>' + this.nodeName + ':nth-child(' + getChildNumber(this) ')';
while (!parent.id && parent.nodeName.toLowerCase() !== 'body') {
selector = '>' + this.nodeName + ':nth-child(' + getChildNumber(parent) + ')' + selector;
parent = parent.parentNode;
}
if (parent.nodeName === 'body') {
selector = 'body' + selector;
} else {
selector = '#' + parent.id + selector;
}
return sendToServer(selector);
}
तो प्रत्येक तत्व को मॉडल करना चाहते का क्लिक हैंडलर है कि जोड़ें। मैं आपको getChildNumber()
लागू करने के लिए छोड़ दूंगा।
संपादित करें: बस देखा यह 3 पार्टी कोड जा रहा है ... तो तुम एक event
तर्क जोड़ सकता है, event.target
साथ this
के सभी उदाहरणों की जगह और फिर बस अगर है कि window
के क्लिक करें घटना के लिए समारोह देते हैं के बारे में अपनी टिप्पणी आसान।
स्रोत
2011-12-21 10:35:20
आप html आप में तत्व का चयन करने की जरूरत है प्रदान कर सकते हैं? –
असल में, मुझे "मेरा" एचटीएमएल नहीं मिला है क्योंकि मेरा जावास्क्रिप्ट कोड कुछ 3-पक्षीय पार्टी वेबसाइटों में डाला गया है, इसलिए एचटीएमएल कोड में कुछ मनमानी संरचना – tsds
है और आपके जेएस कोड के बारे में क्या है? – Miquel