在getter之后调用Jquery方法
Calling Jquery method after a getter
我在查jQuery文档。我发现了这个例子
$( "h1" ).html().addClass( "test" );
为什么这个代码不起作用?getter和setter如何使用jQUery?
编辑
如果我想把类添加到特定的标签中,那么如何实现呢?
这将不起作用,因为$(selector).html()
返回一个字符串值,该值构成所选元素的HTML内容。字符串没有addClass
函数。
编辑:响应您的编辑,只需切换函数调用的顺序即可。
$("h1").addClass("test").html()
这是因为html()
返回一个字符串。这就像
$( "h1" ).html().addClass("test");
// is like
var test1 = $( "h1" ).html();
test1 = test1.addClass( "test" ); // will fail because string has no addClass
但是如果你先addClass
,它会给h1
添加一个类,并且返回h1
的jQuery对象,所以我们仍然可以在它上使用html()
$( "h1" ).addClass( "test" ).html();
// is like
var test1 = $( "h1" ).addClass( "test" ); // test1 is a jQuery object of h1
test1 = test1.html(); // success, because test1 is a jQuery object (has .html()).
html((返回字符串,因此您不能调用addClass方法,该方法假定在jQuery对象上运行
http://api.jquery.com/html/
http://api.jquery.com/addclass/
在jQuery中,getters获取某些信息。例如,上面的getter获取$("h1")
jQuery对象的innerHTML
属性。
另一方面,设置程序会更改元素中的信息。Setters将更改信息,然后返回新的jQuery对象。对于所有(或至少大多数(不是getter的jQuery方法也是如此。
因为没有参数的.html()
是getter,所以它返回一个字符串,而不是jQuery对象。但是,如果使用.html()
方法作为带有参数的setter,它将返回jQuery对象。方法返回的jQuery对象的方法就是这样工作的:您可以在一行代码中调用一个又一个方法,因为这些方法返回jQuery对象。然而,如果其中一个方法是getter,那么这就不起作用。
$("h1").html().addClass(test); //TypeError: undefined is not a function (Chrome)
$("h1").html("Hi!").addClass(test); //Perfectly valid
本教程介绍如何链接jQuery方法。
- 如何在扩展jQuery方法时传递参数
- 用jQuery方法扩展Zepto.js?scrollTop()
- 如何使用页面's的jQuery方法
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 下拉 jquery 方法发布表单不起作用
- jQuery方法未按预期工作-toggleClass
- jQuery 方法调用了两次
- jQuery方法添加一个TextBox
- 在coffeescript中链接jquery方法和参数
- 在jQuery方法中编写自定义属性的正确语法是什么
- 我的jquery方法没有'不起作用
- jQuery方法找不到选择器
- 单击按钮后需要jQuery方法重定向-ASP.NET、VB.NET、jQuery、Javascript
- 如何在jquery方法中创建一个if语句
- 在jQuery方法中实现Javascript变量
- 使用参数作为jQuery方法
- 对从Ajax返回的数据使用Jquery方法,不打印数据
- 如何通过 .ajax() jQuery 方法获取 Carrierwave 上传到 Amazon S3 的图像的 URL
- 如何调用 jQuery 方法
- 插件中的元素不接受 jQuery 方法