HTML5 removes that restriction on id's, and I can't think of a single 
browser that even follows that restriction.
There are a lot of convoluted things inside of the HTML4 spec which 
browsers don't bother implementing, and we don't bother following, nor 
do browsers.
Saying that we shouldn't handle id's without [] because standards 
defines that we shouldn't, is like saying we shouldn't use innerHTML 
because it's not defined in standards.

Fact is that jQuery does support using characters like :[] by escaping 
them with a \ and that should be noted when someone does not know.

~Daniel Friesen (Dantman, Nadir-Seen-Fire)

DBJDBJ wrote:
> Thanks Nick,
>
> Also would not this forum be better without advices like :
>
> "...[] is used for attributes. Use the backslash to escape them for
> use as
> part of an id..."
>
> And, yes this is not a discussion for this forum, too ..
>
> -- DBJ
>
>
>
> On Apr 15, 11:26 am, "Nick Fitzsimons" <n...@nickfitz.co.uk> wrote:
>   
>> Indeed; [ and ] are not actually valid characters in an id attribute,
>> according to HTML 4.01:
>> <http://www.w3.org/TR/html401/types.html#type-name>
>>
>> 'ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
>> followed by any number of letters, digits ([0-9]), hyphens ("-"),
>> underscores ("_"), colons (":"), and periods (".").'
>>
>> Just to confuse the issue, [ and ] _are_ permitted in "name" attributes;
>> whereas "id" attributes are of type "NAME", "name" attributes are of type
>> "CDATA":
>> <http://www.w3.org/TR/html401/types.html#type-cdata>
>>
>>
>>
>> On Wed, April 15, 2009 9:39 am, DBJDBJ wrote:
>>
>>     
>>> Even better: do not use them at all , as part of an id ...
>>>       
>>> On Apr 14, 6:58 pm, Daniel Friesen <nadir.seen.f...@gmail.com> wrote:
>>>       
>>>> [] is used for attributes. Use the backslash to escape them for use as
>>>> part of an id.
>>>>         
>>>> ~Daniel Friesen (Dantman, Nadir-Seen-Fire)
>>>>         
>>>> Mat Brennan wrote:
>>>>         
>>>>> Hi all,
>>>>>           
>>>>> Not sure if this is even relevant to the development side of the
>>>>> group.
>>>>>           
>>>>> I've noticed if i have something such as:
>>>>>           
>>>>> <input type="text" name="firstname[1]" id="firstname[1]" />
>>>>> <input type="text" name="firstname[2]" id="firstname[2]" />
>>>>>           
>>>>> And then i use a selector such as
>>>>> $("#firstname[2]") then nothing is returned; In fact even
>>>>> document.getElementsById('firstname[2]') will return nothing. I'm not
>>>>> sure if it's being turned into an array internally or if i'm
>>>>> misinterpreting how getElementById works but it's been bugging me.
>>>>>           
>>>>> I dont need a solution on how to select the element i already figured
>>>>> I could do something like:
>>>>> $("[id='firstname[2]']"); which works fine but what I am curious to
>>>>> know is why the behavior is so odd for this type of id.
>>>>>           
>>>>> Thanks guys,
>>>>> Much appreciated.
>>>>>           
>> --
>> Nick Fitzsimonshttp://www.nickfitz.co.uk/
>>     
> >
>   

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to