.find不't在jquery 1.4.2中工作,我可以'我不知道如何支持它
.find doesn't work in jquery 1.4.2 and I can't figure out how to support it
我不知道如何向后写代码来支持jQuery 1.4.2。因此,我在尝试支持较旧的库文件时感到困惑。
var n = this;
e(document).ready(function () {
var r = e("body").find(n);
r.attr("placeholder", t);
r.val(t);
n.focus(function () {
e(this).val("")
}).blur(function () {
var r = e(n);
if (r.val() == "") r.val(t)
})
})
您的代码过于复杂。首先,你不需要在插件内部使用$(document).ready()
,你可以让使用插件的开发人员来处理这一点。接下来,在插件内部,this
是一个包含所选元素的jQuery对象。您应该对它们进行迭代,然后分别对每一个执行操作。
(function ($) {
$.fn.labelfixer = function (t) {
return this.each(function(){
var $this = $(this);
$this.attr("placeholder",t);
this.value = t;
$this.focus(function(){
if (this.value == t) {
this.value = "";
}
});
$this.blur(function(){
if (this.value == "") {
this.value = t;
}
});
});
};
})(jQuery);
你确定吗?我刚刚为find
添加了一个使用1.4.2
的示例,它工作正常。
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body id='bd'>
<ul class="level-1">
<li class="item-i">I</li>
<li class="item-ii">II
<ul class="level-2">
<li class="item-a">A</li>
<li class="item-b">B
<ul class="level-3">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
</ul>
</li>
<li class="item-iii">III</li>
</ul>
</body>
</html>
JS:
$('li.item-ii').find('li').css('background-color', 'red');
在此处查找垃圾箱:http://jsbin.com/INonAYo/1/edit
是的,那是正确的。.find()函数是在1.6中添加的。您可以升级jQuery或使用CSS选择器使用.find()。
如果你有具有唯一.id元素的元素,你可以改变你的.find函数来调用它:
.find('#' + n.id)
另一种选择,因为你有"这个",你可以只使用基本的$(这个):
var r = $(this);
或者,对于您的代码r=e(this);
这可能不是最优雅的解决方案,但您可以检查find函数是否存在,如果不存在,则将其添加到jquery对象中。
类似的东西
if (!$.find) {
$.fn.find = function () {
// find function definition
};
}
编辑:一个更好的条件:
var version = $.fn.jquery.split('.');
if (version[0] < 2 && version[1] <= 6 && version[2] < 4)
最后一次编辑:由于jsfiddle的jquery不低于1.6.4,我无法对此进行测试验证,但我从谷歌的cdn jquery 1.6.4中提取了find函数,因此完整的猴痘将是:
var version = $.fn.jquery.split('.');
if (version[0] < 2 && version[1] <= 6 && version[2] < 4) {
$.find = function( expr, context, isXML ) {
var set;
if ( !expr ) {
return [];
}
for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
var match,
type = Expr.order[i];
if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
var left = match[1];
match.splice( 1, 1 );
if ( left.substr( left.length - 1 ) !== "''" ) {
match[1] = (match[1] || "").replace( rBackslash, "" );
set = Expr.find[ type ]( match, context, isXML );
if ( set != null ) {
expr = expr.replace( Expr.match[ type ], "" );
break;
}
}
}
}
if ( !set ) {
set = typeof context.getElementsByTagName !== "undefined" ?
context.getElementsByTagName( "*" ) :
[];
}
return { set: set, expr: expr };
};
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- 我不知道我的编码有什么问题.(JavaScript)
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- 我已经用javascript制作了一个幻灯片,但我不知道如何让我的照片发呆
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 单选按钮验证:我可以验证它,但我不知道原因
- 当我没有'我不知道关键值
- 我的素数函数坏了,但我没有;我不知道为什么
- 我得到了这个错误,但是不要;我不知道如何修复它,www.example.com/undefined?1460018627
- 可以'我不知道如何使用谷歌图表API显示2个表
- 可以'我不知道李是在徘徊
- .find不't在jquery 1.4.2中工作,我可以'我不知道如何支持它