我正在使用jQuery选择器来获取页面上所有CMS组件的值,使用$('div.cmscomponent')
,但我如何测试这个以查看实际上是否获取页面上的组件列表。如何获取jquery中的对象值和属性?
我用:
var temp = $('div.cmscomponent');
alert(temp);
和结果,我得到的是[Object对象]等我如何测试呢?以及如何获取对象及其属性的值。
我正在使用jQuery选择器来获取页面上所有CMS组件的值,使用$('div.cmscomponent')
,但我如何测试这个以查看实际上是否获取页面上的组件列表。如何获取jquery中的对象值和属性?
我用:
var temp = $('div.cmscomponent');
alert(temp);
和结果,我得到的是[Object对象]等我如何测试呢?以及如何获取对象及其属性的值。
那么这取决于你想知道什么匹配的对象。一些例子:
var temp = $('div.cmscomponent');
alert(temp.length); // number of matched elements
// Alert each id attribute of every matched element
$(temp).each(function(index) {
alert(index + ': ' + $(this).attr("id"));
});
var temp = $('div.cmscomponent').length;
alert(temp);
如果“我如何测试这个”,你的意思是?“我怎么能写这样的单元测试”,得到的回答是,你不应该。你没有写jQuery,所以你应该认为它已经被单元测试过了。 (如果有为与jQuery的一个问题,但是,你可以写集成测试会赶上这一点。)
在另一方面,如果你的意思是“我怎么能理智检查什么的jQuery告诉我请确保我没有穿上输入?“,有几种方法:
.length
是否符合预期的项目数。"//div[@class='cmscomponent']"
)是否返回相同数量的值。否则,它可能是最好使用第三方工具,如Firebug。
$()
返回一个jQuery包装器对象,其内容通常是DOM元素列表以及适用于这些元素的属性和方法。
如果你想获得一个元素,你可以使用数组风格指数或get()
方法访问它们:
alert(temp[0].tagName); // Fetch the first element, alert the `tagName`
alert(temp.get(1).tagName); // Fetch second element, alert the tagName
要检查结果有多少个元素包含,您可以使用.length
,只是就像你在一个阵列或集合/节点列表上一样:
alert(temp.length); // Alerts number of elements found.
这里是一个javascrip include,它可以让你查看对象的结构和信息。 EX:dump(temp,true);
如果你想要做的是测试如果你的代码是做你所期望的,Firebug这里是你的朋友。它会给你一个控制台来输入一个像$('div.cmscomponent')
这样的命令,然后交互式地浏览它返回的结果。
然后,您可以将鼠标悬停你的命令返回的每一个项目,它会在页面上突出显示,所以你可以看到的命令返回该项目,如果这些项目是你所期望的那些/通缉。