2010-02-25 12 views
38

मेरे पास divs की एक सूची है जिसमें सभी p टैग index के रूप में वर्गीकृत हैं। इन p टैग की टेक्स्ट सामग्री 1 से एन (हालांकि शायद 30-40 से अधिक नहीं) की संख्या है।EXACT टेक्स्ट सामग्री के आधार पर तत्व का चयन करें

var ad = $('.existing_ad .index:contains('+index+')').parents('.existing_ad'); 

कहाँ index संख्यात्मक इंडेक्स मैं p टैग से लिया गया और .existing_ad है माता पिता div का वर्ग है: मैं निम्नलिखित चयनकर्ता, जो प्रारंभिक परीक्षण में ठीक काम किया था। जैसा कि मैंने कहा, यह ठीक काम करता है ... जब तक मैं उच्च संख्या के साथ चला गया। उदाहरण के लिए, जब सूचकांक है, तो यह .existing_ad एस का चयन करता है जहां इंडेक्स है आईटी में, उदा। 1, 10-19, 21, 31, आदि

मैं केवल सूचकांक एन कैसे प्राप्त कर सकता हूं?

+0

इस भेद के बारे में नहीं जानना बड़ी समस्याएं हो सकती है +1 – interpolack

उत्तर

49

कैसे इस बारे में:

$('.existing_ad .index').filter(function() { 
    return $(this).text() == index; 
}).parents('.existing_ad'); 
+0

आह हाँ। मेरा अच्छा दोस्त 'फ़िल्टर()'। मैं आपके बारे में कितनी बार भूल जाता हूँ। +1, धन्यवाद! – Jason

+1

क्या आप '==' – Medorator

27

आप इसे एक बहुत का उपयोग करें, तो आप <div>John</div> से मेल खाएगी एक विस्तार

$.expr[":"].containsExact = function (obj, index, meta, stack) { 
    return (obj.textContent || obj.innerText || $(obj).text() || "") == meta[3]; 
}; 

$('div:containsExact('John') लेकिन नहीं <div>Johnny</div>

मूल प्रश्न के लिए बना सकते हैं , यह

होगा
var ad = $(".existing_ad .index:containsExact('"+index+"')").parents('.existing_ad'); 
+6

IMHO के बजाय '===' का उपयोग नहीं करना चाहिए, यह स्वीकार्य उत्तर –

+1

होना चाहिए हाँ यह मेरे लिए बहुत अच्छा काम करता है। ध्यान दें कि मुझे निम्न में FTEs के आस-पास उद्धरणों का उपयोग करने की आवश्यकता नहीं है: '$ ("। Table tr ")। ('Td: first: includeExact (FTEs)')। टेक्स्ट();' – DnfD

+1

व्यावहारिक अनुप्रयोगों में कभी-कभी '== मेटा [3]; से पहले समापन कोष्ठक के बाद '.trim()' जोड़ने के लिए उपयोगी होता है, सटीक पाठ से पहले और बाद में व्हाइटस्पेस के बावजूद मिलान करने के लिए। – ianmcook

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