2016-06-02 42 views
3

Wie kann ich alle Elemente in meinem td, dessen ID endet mit einem 2?Wählen Sie alle Elemente in TD mit bestimmten ID

In meinem Code, die IDs des 2. und 4. Element enden mit einem 2, so dass diese Elemente Hintergrundfarbe rot werden soll.

<table> 
    <tr> 
    <td> 
     <input type="text" id="abc|1"> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <select id="def|2"> 
     <option>123</option> 
     <option>456</option> 
     <option>789</option> 
     </select> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="radio" id="ghi|1" /> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="text" id="jkl|2"> 
    </td> 
    </tr> 
</table> 

Das ist mein Ansatz:

$("table td:nth-child(1)[id$=2]").css("background-color", "red"); 

FIDDLE.

+1

Sie sind nicht id ... sie sind Klassenname –

+0

@The_Black_Smurf: Mein schlechtes. Das habe ich korrigiert. – user1170330

Antwort

1

verwenden jQuery

$("table td:nth-child(1) [id$=2]").css("background-color", "red"); 

JSFiddle: https://jsfiddle.net/torjpv9t/3/

Hinweis: Sie einfach $("[id$=2]") als Selektor verwenden können.

+2

Was hier zu beachten ist, ist der Abstand zwischen dem 'td: nth-child (1)' und '[id $ = 2]'. Dies liegt daran, dass das Element mit der ID, die auf 2 endet, ein Nachkomme ist und von dem "td" getrennt ist –

2

Das erste Problem ist, dass Ihr FIDDLE nicht funktioniert, weil Sie vergessen haben, jQuery einzuschließen.

Das zweite Problem ist Ihre Abfrage. Abstand ist wichtig beim Definieren von Selektoren. In Ihrer Abfrage haben Sie td:nth-child(1)[id$=2]. Da zwischen td:nth-child(1) und [id$=2] kein Platz ist, suchen Sie grundsätzlich nach einer td mit einer bestimmten ID. Was Sie wollen, ist das Eingabeelement innerhalb der td zu finden. Dies wäre passender - beachten Sie den Abstand zwischen. Das Leerzeichen zeigt an, dass Sie alle Nachkommen des td suchen möchten. Wenn Sie nur direkte Kinder suchen möchten, können Sie die > verwenden, um dies als td:nth-child(1) > [id$=2] zu bezeichnen.

Sie können Ihre Abfrage auch für dieses spezielle Szenario vereinfachen. Wenn Sie alle Eingaben wollen, die eine ID haben, die in 2 endet, dann können Sie jquery :input Pseudo-Selektor verwenden, um sie gezielt in etwa so:

$(":input[id$=2]").css("background-color", "red");

https://api.jquery.com/input-selector/

Beschreibung: Wählt alle Eingaben , Textarea, Auswahl- und Schaltflächenelemente.

Verwandte Themen