You want this:

$("#" + fieldset_id);

Don't feel bad, that trips up a lot of people at first (myself included).

Basically the selector is just a string, so you can use the usual JS string methods to get what you need.

-- Josh


----- Original Message ----- From: "fredriley" <[EMAIL PROTECTED]>
To: "jQuery (English)" <jquery-en@googlegroups.com>
Sent: Monday, October 27, 2008 1:13 PM
Subject: [jQuery] Selecting an element whose ID is in a variable



This has got to be a FAQ, but I can't see it in the FAQ so here goes,
and apologies if it's a stupid question but I'm a relative newbie to
jQuery:

How can I select an element whose id is stored in a constructed string
variable?

What I mean is something like the following. In a document I've got
<span> elements with IDs "1", "2", "3", etc, and these correspond to
fieldset elements with IDs "part1", "part2", "part3", etc. The user
clicks on a <span>, the code gets its ID, constructs the ID of the
corresponding <fieldset>, then does something with that (hides it). So
something like:

$("span").click(function()
{
      // get the handle of the clicked element
var mySpan = $(this);
     // get its id
var span_id = mySpan.attr("id");
    // construct the fieldset id
var fieldset_id = "part" + span_id;
   // select the fieldset then hide it - now I'm stuck
});

I've tried the selectors:

alert($(fieldset_id).attr("id")); // gives 'undefined'
alert($(#fieldset_id).attr("id")); // syntax error: illegal character,
not surprisingly
alert($("#fieldset_id").attr("id")); // gives 'undefined'

An alternative would be to get the handle of the fieldset element,
which could be achieved with the Javascript:

var id2 = document.getElementById(fieldset_id);
alert(id2.id); // gives the id of the fieldset

but I don't know how to do this in jQuery. I'd prefer to go the whole
jQuery hog and not mix it with raw JS, and I could do with
understanding how to do this simple operation anyway to improve my
jQuery understanding, so tips would be welcome. TIA.

What I'm trying to do is generalise the specific code in the test at
http://www.nottingham.ac.uk/~ntzfr/test/ajax/jquery/show_hide.html to
handle a form with any number of toggle-able sections.

Cheers

Fred



Reply via email to