RetroCoder
RetroCoder

Reputation: 2685

jQuery selector for a checkbox that contains certain text in its name attribute

I'm trying to find a selector in jQuery that select all inputs that are checkboxes and their name contains a specific word like "top" or "Top". Having trouble b/c its selecting other checkboxes.

Is it possible to use something like:

$("input[name*='top'] type:checkbox").each etc?

Top 1<input type="checkbox" name="Top1" /><br />
Top 2<input type="checkbox" name="Top2" /><br />
Top 3<input type="checkbox" name="Top3" /><br />
Top 4<input type="checkbox" name="Top4" /><br />

Bottom 1<input type="checkbox" name="Bottom1" /><br />
Bottom 2<input type="checkbox" name="Bottom1" /><br />
Bottom 3<input type="checkbox" name="Bottom1" /><br />
Bottom 4<input type="checkbox" name="Bottom1" /><br />

I only want to select the check boxes which contian the word "top" in its name.

Upvotes: 7

Views: 8949

Answers (3)

Christofer Eliasson
Christofer Eliasson

Reputation: 33865

I believe you could combine the :checkbox selector and the attribute-contains selector:

$("input:checkbox[name*='top']").each(); 

Not sure if it needs to be case insensitive, in that case you could have a look at this SO question.

Update:

As bažmegakapa points out in his comment, :checkbox selector is deprecated according to the documentation. Therefor it is probably better to use:

$("input[type=checkbox][name*='top']").each();

Upvotes: 5

Mark K
Mark K

Reputation: 591

You were close...

$("input[type='checkbox'][name^='Top']").each()

jsFiddle Demo

Upvotes: 13

Ram
Ram

Reputation: 144699

you can use start with selector:

$("input[name^='Top']")

or:

$("input[name^='Top']:checkbox")

Upvotes: 6

Related Questions