我正在使用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')
這樣的命令,然後交互式地瀏覽它返回的結果。
然後,您可以將鼠標懸停你的命令返回的每一個項目,它會在頁面上突出顯示,所以你可以看到的命令返回該項目,如果這些項目是你所期望的那些/通緝。