Occasionally I pass an 'object' to jQuery rather than an id or other selectors. For example
<input type="text" onclick="doit(this)" />
<script type="text/javascript">
function doit(e) {
var a = $(e).val();
}
It is useful开发者_开发技巧 when ids are not convenient such as long lists of elements or dynamically created input fields. I actually have seen any examples of passing the object. I just tried it and it works.
My question is: can I combine object selector with other selectors such as I would with ids. so instead of:
$("#myDiv .myClass").something()
I wouldn't know how to code it - something like this maybe:
$(e + " .myclass").something
thanks
Do this:
$(e).find(".myclass").something();
or the slightly shorter, yet less efficient version:
$(".myclass", e).something();
The reason you can't use +
is that your e
is a DOM element, which is not a useful type for concatenation into a selector string, since you end up with something like:
"[object HTMLInputElement] .myclass"
This is one way. using the context parameter in jQuery.
http://api.jquery.com/jQuery/
$(".myclass", e).something();
精彩评论