I am saying that XPath is the most ideal solution of the options that I am 
aware.  There are valid reasons to not use XPath, such as: less familiar syntax 
conventions, originated as terse scripting construct of XML vocabularies, and 
questions about support in the wild.  All modern browsers support XPath, but 
there is still the question of other parsing agents/devices.  Many people have 
strong opinions against anything XML related due to its strict conformity 
requirements.  In the face of opposition the DOM methods are a less ideal 
though functionally acceptable fallback. 

I would attempt to use XPath entirely.  If that is not an available option I 
would fall back on something else entirely and not attempt to mix parts of 
XPath with something unrelated.

Thanks,
Austin Cheney, CISSP

From: [email protected] [mailto:[email protected]] On Behalf 
Of Nathan Sweet
Sent: Tuesday, September 06, 2011 5:04 PM
To: [email protected]
Subject: Re: [JSMentors] spaces in attribute values

>>If you want elegance, simplicity, and specificity then your best bet is XPath.
If Diego Perini is listening in to this conversation I'd love to hear his 
thoughts, I know this is his area of expertise, and I know he's 
very opinionated about where the DOM is headed. I'm not entirely sure I 
understand you Austin, are you saying utilize native XPath methods over 
traditional DOM methods, because that debate ended a couple of years ago, or 
are you saying I should use XPath completely, as what is exposed to the end 
user? If the latter, than your idea is intriguing, and not one I would have 
considered.
On Tue, Sep 6, 2011 at 12:46 PM, Cheney, Austin <[email protected]> 
wrote:
> So this presents an interesting dilemma
The dilemma is far more complicated than merely that.  You are using one means 
of selection in a context for which it was never intended.  That is why it is 
incomplete and error prone and it's not because of short-sightedness in CSS.  
This is why jQuery has to temper its use of CSS selectors as a query means with 
the addition of a large number of methods to complement the short comings of 
this convention.

If you want elegance, simplicity, and specificity then your best bet is XPath.  
This is the only thing XPath was designed for.  A simple XPath expression can 
give you a higher degree of specificity than a complex CSS selection with a 
whole host of unnecessary methods.  If that option is either unavailable or 
undesirable you can use the clunky DOM methods, which are neither the most 
elegant nor fastest solution, as they do their job with clarity.

If at the end of the day you still want to use some out of context convention 
then be prepared to make some hard decisions that come with unpleasantly 
burdensome consequences that extend beyond implementation questions.

Thanks,
Austin Cheney, CISSP

From: [email protected] [mailto:[email protected]] On Behalf 
Of Nathan Sweet
Sent: Tuesday, September 06, 2011 2:12 PM
To: [email protected]
Subject: Re: [JSMentors] spaces in attribute values

>>As for ANY CSS property value, that is more than one word you should use 
>>quotes, like font names. That this would apply to selectors too.

Thanks Poetro,
So this presents an interesting dilemma, it really is more of a code design 
question whether I should go above and beyond the call of duty and except 
identifiers with white space in them, it would actually be easier for me to do 
so, but would this be lazy? I think I'm good for now, but if anybody is really 
passionate about the philosophy of arbitrarily implementing the CSS spec as a 
mode of selecting elements in javascript, I'd be interested to hear their 
thoughts.
-Nate
On Tue, Sep 6, 2011 at 9:08 AM, Poetro <[email protected]> wrote:
Sorry, messed the the order

>> Attribute values must be CSS identifiers or strings.
>
> See the specification for identifiers
> http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
>
>> In CSS, identifiers (including element names, classes, and IDs in selectors)
>> can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0
>> and higher, plus the hyphen (-) and the underscore (_); they cannot start 
>> with a
>> digit, two hyphens, or a hyphen followed by a digit.
--
Poetro

--
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]
--
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/
 
To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/
 
To unsubscribe from this group, send email to
[email protected]
--
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/
 
To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/
 
To unsubscribe from this group, send email to
[email protected]

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to