2

i have a lot of input fields like:

<input type="hidden" value="" name="participants[1][canceled]">
<input type="hidden" value="" name="participants[2][canceled]">
<input type="hidden" value="" name="participants[3][canceled]">

I am looking for a jQuery selector that gives me all of these items. I dont want to use a loop. I would prefer something like:

jQuery('[name="participants[*][canceled]"]') // actually dont work

Is that possible?

Thank you

EDIT: Thanks to all of you

$(':hidden[name^="participants["][name$="][canceled]"]');

Was my solution and works like a charm. Ty

6 Answers 6

2

To be precise this is the correct way:

$(':hidden[name^="participants["][name$="][canceled]"]');

Or if you need to match numbers only:

$(':hidden').filter(function() {
    return /^participants\[\d+\]\[canceled\]$/.test(this.name);
});

DEMO: http://jsfiddle.net/qbgAL/

Sign up to request clarification or add additional context in comments.

1 Comment

This one is a nice idea.. I like this.
2

Try to use the attribute starts with selector in your context,

jQuery('[name^="participants"]')

Comments

1

If you just want the array name then you can just use participants

Live Demo

jQuery('[name*=participants]')

Comments

0

I would use something like $("input:hidden[name^='participants']")

Comments

0

Try this :Refrence

$('[name ="participants"][name $="[canceled]"]')

Comments

0

Try this:

jQuery('[name^="participants"][name$="[canceled]"]')

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.