function getByClass(clsName,parent){ var oParent=parent?document.getElementById(parent):document, eles=[], elements=oParent.getElementsByTagName('*'); for(var i=0,l=elements.length;i<l;i++){ if(elements[i].className==clsName){ e
可以幫我解釋一下這里的getByClass可以隨便定義嗎?
var oParent=parent?document.getElementById(parent):document,還有這句如何理解
?elements=oParent.getElementsByTagName('*');這個星號優(yōu)勢代表什么?。?!
2016-10-27
定義函數getByClass:首先,JavaScript是面向對象的語言,且永遠有一個全局執(zhí)行環(huán)境,而在瀏覽器中,全局執(zhí)行環(huán)境對象為window,此處定義一個函數就是為window對象添加一個方法。在實際開發(fā)中,如果項目比較大,為了避免全局污染或同名沖突,不會直接在window下定義函數。
var oParent=parent?document.getElementById(parent):document: 等號后面是一個三元表達式。即true?1:0取1,false?1:0取0。在JavaScript中調用方法時,傳參是很隨意的,只要方法名正確,參數類型、參數個數是否匹配都無關緊要。因此,無法保證參數parent是否存在。此三元表達式的含義是當參數parent存在時,oParenet=parent,如果不存在,則oParent=document 。document即是html文檔對象。
elements=oParent.getElementsByTagName('*'):*是通配符,在很多編程語言中都通用,代表任意字符。在此處的含義是獲取標簽名為任意值的dom元素對象集合。
建議:學習JavaScript,最好先買本犀牛書或JavaScript高級程序設計看看,學習一下基礎語法和特性。