2010-11-01 11 views
6

के अंदर पाठ ढूंढें मैं कुछ चयनकर्ताओं के साथ खेल रहा हूं, और मैं एक सेल के अंदर पाठ का चयन करने के साथ दीवार मार रहा हूं।jquery <td>

यहां एक आसान प्रयास है जो मैं कर रहा हूं।

<table> 
<tr> 
    <td>First Name</td> 
    <td>*required</td> 
    </tr> 
</table> 

मैं उस सेल के लिए कक्षा को "लाल" होना चाहता हूं - यदि स्ट्रिंग "* आवश्यक" पाया जाता है।

यहाँ jQuery पर मेरे प्रयास है:

$("td:contains('*required')").addClass("red"); 

यह सब कोशिकाओं है कि वर्ग लागू करने के लिए पैदा कर रहा है, ऐसा लगता है। विशिष्ट पाठ को देखने के लिए कोई बेहतर तरीका?

+0

जहाँ तक मैं इसे उम्मीद के अनुसार काम कर सकता हूं। http://jsfiddle.net/nY29Q/ –

+0

यह मेरे लिए काम करता है। क्या आप उस कोड को http://jsfiddle.net पर लिंक/पोस्ट कर सकते हैं जिसका आप वास्तव में उपयोग कर रहे हैं? – lonesomeday

उत्तर

23

आप काम करता है, you can test it here, ध्यान रखें कि किसी भी माता पिता<td>भी कि पाठ हालांकि शामिल में रखने के लिए, एक सटीक मिलान ऐसा करने के क्या करना है:

$("td").filter(function() { return $.text([this]) == '*required'; }) 
     .addClass("red"); 

You can test it here

+0

+1 मुझे इसे हराया! – Stephen

+0

यह एक दिलचस्प साइट है। मुझे इसे बुकमार्क करना पड़ सकता है! मैं जिस कोड का उपयोग कर रहा हूं वह काम कर रहा है, जब मैं इसे एक साधारण साइट पर रखता हूं, जिसका अर्थ है कि मेरे पास मेरे खिलाफ कुछ और काम करना चाहिए। कुछ और जांच करनी होगी। – coffeemonitor

+0

मैं '$ .text()' फ़ंक्शन से परिचित नहीं हूं - क्या यह कहीं कहीं दस्तावेज है? – lonesomeday

5

आप हमेशा $.filter() का उपयोग कर सकते हैं, जहां केवल कॉलबैक के लिए सत्य लौटाता है केवल चयन में शामिल हैं। उदाहरण के लिए:

$('td').filter(function(i) { 
    $(this).html().indexOf('*required') >= 0; 
}); 

इसके अलावा: आप अपने चयनकर्ता - दक्षता के लिए और निक के उत्तर के कारण भी अधिक विशिष्ट होना चाहते हैं। यद्यपि यदि आप दक्षता पर विचार कर रहे हैं, तो आप पहले से कॉलबैक का उपयोग करने वाली विधि का उपयोग न करने से बेहतर हैं। :)

जहां तक ​​चयनकर्ता जाते हैं, $('#tableID > tr > td')... या कुछ समान उपयोग करने पर विचार करें।

-2

आपको ऐसा करने के लिए जावास्क्रिप्ट का उपयोग नहीं करना चाहिए। आपको क्या उपयोग करना चाहिए एक सीएसएस वर्ग है:

<table> 
<tr> 
    <td>First Name</td> 
    <td class="required">*required</td> 
    </tr> 
</table> 


<style type="text/css"> 
td.required { 
    color:red; 
} 
</style> 
+0

मुझे लगता है कि बिंदु यह है कि सेल में कक्षा शुरू होने की आवश्यकता नहीं है। –

+0

यह बिल्कुल सही है। धन्यवाद क्रेवर। – coffeemonitor

+0

क्या आपके पास मार्कअप पर नियंत्रण नहीं है? आप जावास्क्रिप्ट को लिखने की स्थिति में कैसे होंगे लेकिन सीएसएस का उचित उपयोग करने में सक्षम नहीं होंगे? क्या आप सिर्फ चयनकर्ताओं के साथ सीखने के अभ्यास के रूप में प्रयोग कर रहे हैं? – SnickersAreMyFave

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