我有一个有趣的选择器语句:
$("span#dateofbirth").bind('click', function() {
$("span#dateofbirth>form>input.inplace_field").blur();
$("span#dateofbirth>form>input.inplace_field").removeClass("inplace_value");
$("span#dateofbirth>form>input.inplace_field").datepicker({dateFormat:'yy-mm-dd'});
$("span#dateofbirth>form>input.inplace_field").addClass("inplace_value");
$("span#dateofbirth>form>input.inplace_field").focus();
});
它实际上是由其他人插入的,以使jQuery UI日期选择器与就地编辑插件一起工作。它看起来更像是一个hack/创可贴。但它是有效的。
我想继续使用它,但我想修改它,使其对任何有日期的元素都更具全局性。
所以,我给了跨度一个.datepicker
类
但是,它并不是很有效,因为绑定更喜欢特定的ID,以本地化到该元素。
有没有办法解决这个问题,也许可以把$(this)
与选择器语句的其余部分结合使用?
也许是像这样的东西?
$("span.datepicker").bind('click', function() {
$(this+">form>input.inplace_field").blur();
});
发布于 2012-12-13 01:51:18
使用.find()
$(this).find(">form>input.inplace_field")
或
$(">form>input.inplace_field" , this) // Provide a context to search in
JS
$("span#dateofbirth").bind('click', function() {
$(">form>input.inplace_field" , this).blur()
.removeClass("inplace_value")
.datepicker({dateFormat:'yy-mm-dd'})
.addClass("inplace_value")
.focus();
});
应该对选择器执行chain
或cache
操作,以减少查询DOM的次数。
发布于 2012-12-13 01:50:48
选择器是普通字符串。
你在试着写
$(this).find(">form>input.inplace_field")
发布于 2012-12-13 02:36:23
子选择器>
现在在jQuery选择器中被弃用(在CSS中仍然可以)。
您应该按照以下方式使用一些东西:
$(".datepicker").on('click', function() {
$(this).children("form").children("input.inplace_field").blur()
.removeClass("inplace_value")
.datepicker({dateFormat:'yy-mm-dd'})
.addClass("inplace_value")
.focus();
});
https://stackoverflow.com/questions/13851702
复制相似问题