On Dec 16, 2009, at 11:14 PM, John Resig wrote:

> People are use to using .has()? It was only just added - at the same
> time as .contains() as well.
>
> I'll mull over the .contains() discrepancy. I may just punt it and
> push people towards .has() anyway.
>
> Looking at .has() now I'm not 100% sure why it's filtering and not
> just returning a boolean, like .is(). Hmm. If .has() returns a boolean
> then yeah, consider .contains() gone (and a jQuery.contains will be
> provided for those that need a lightweight method).
>
> --John


But if .has() returns a boolean, then we have the same problem  
with :has() vs. .has() as we had with :contains() vs. contains().

Since :has() is a filter, I would expect .has() to be a filter.

On Dec 17, 2009, at 12:45 AM, Rick Waldron wrote:
> John, I tend to assume that anything prefixed with 'is' or 'has'  
> will return a boolean. I think this is likely a common assumption.

I typically assume the same thing, but in this case .has() is not a  
prefix; it's the full method name. And we already have the pseudo- 
selector :has() that acts as a filter.


--Karl

> On Wed, Dec 16, 2009 at 11:04 PM, ajpiano <ajpi...@gmail.com> wrote:
>> It seems like a matter of course that means of filtering that are
>> exposed as both pseudoselectors and methods on the jQuery prototype
>> return the same set of elements, or at least that they generally  
>> apply
>> the same principle in filtering.  Examples include eq, not, first,
>> last, and has.  While the :parent pseduo doesn't work the same
>> as .parent(), most developers know what they're looking for if  
>> they're
>> using :parent.
>>
>> The new $.fn.contains method, however, doesn't work like :contains.
>> Rather than searching for the text content of elements, .contains()  
>> is
>> just a shortcut to $(elem).has("foo").length > 0.  I'm not sure why
>> this is really a necessary shortcut, given that most people are  
>> plenty
>> used to doing something like .has().length anyway.  I tend to think,
>> however, that .contains () should work like :contains, for
>> consistency's sake.
>>
>> This would have the added benefit of allowing those people who do
>> use :contains to write code like this:
>>
>> var foo = "barbazbat";
>> $("div").contains(foo);
>>
>> instead of
>> $("div:contains("+foo+")");
>>
>> Anyone else have any thoughts on this?
>>
>> --adam
>>
>> --
>>
>> You received this message because you are subscribed to the Google  
>> Groups "jQuery Development" group.
>> To post to this group, send email to jquery-...@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 
>> .
>>
>>
>>
>
> --
>
> You received this message because you are subscribed to the Google  
> Groups "jQuery Development" group.
> To post to this group, send email to jquery-...@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 
> .
>
>

--

You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-...@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