2010-11-02 4 views
6

Ich versuche eine Tabellenzelle auszuwählen, die einen bestimmten Text enthält, konnte aber noch nicht herausfinden, wie es funktioniert: Ich habe diesen Code - funktioniert aber nicht:jQuery-Selektor: Tabellenzelle basierend auf dem Inhalt finden

Irgendwelche Ideen, was ist los?

+6

Das sollte funktionieren. Könntest du etwas mehr Kontext für deinen Code und deinen HTML-Code bereitstellen? – lonesomeday

+0

verwenden Sie das 2. Argument in $() korrekt? – JustcallmeDrago

Antwort

8

Der folgende Beispielcode funktionierte für mich. Hoffe, es hilft ....

<script type="text/javascript"> 
function getCell(cell) 
{ 
    var cell || ''; 
    var result = $('tr').find('td:contains('+cell+')'); 

    alert($(result).text()); 
} 

<body onload="javascript:getCell('cell 4');"> 

<table width="30" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
    <td>cell 1</td> 
    <td>cell 2</td> 
    <td>cell 3</td> 
</tr> 
<tr> 
    <td>cell 4</td> 
    <td>cell 5</td> 
    <td>cell 6</td> 
</tr> 
<tr> 
    <td>cell 7</td> 
    <td>cell 8</td> 
    <td>cell 9</td> 
</tr> 
</table> 


</body> 
+2

warum redeclare zelle? – bevacqua

0

Nur um sicherzugehen, „MyCell“ ist im Inneren der Zelle und nicht seine Klassennamen oder ein Attribut des <td>, nicht wahr?

Eine weitere Möglichkeit ist die :contains() Selektor ist Groß-und Kleinschreibung, so, wenn der Inhalt ist "myCell" der Selektor würde es nicht finden.

0

haben Sie versucht, ohne die ''? wie in

var td = $("td:contains(MyCell)",tbl); 
3

statt der zweite Parameter Vielleicht tbl

var td = $("#mySpecificTable td:contains('MyCell')"); 
+0

Schnelle und effiziente Annäherung! – helvete