第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

正在回答

2 回答

function?getByClass(parent,?clsName)?{
	var?arr?=?new?Array(),
		clsArr?=?new?Array(),
		obj?=?parent.getElementsByTagName('*');
	for?(var?i?=?0;?i?<?obj.length;?i++)?{
		clsArr?=?obj[i].className.split('?');
		for?(var?j?=?0;?j?<?clsArr.length;?j++)
			if?(clsArr[j]?==?clsName)?{
				arr.push(obj[i]);
				break;
			}
	}
	return?arr;
}

可以先用 **className.split(' ') 將字符串分割成div所包含所有類構成的數(shù)組,然后遍歷數(shù)組是否等于查找類名就行

然而正則匹配需要判斷:匹配類在字符串首、尾和中間還有其它類名包含或者用短線組合的類名,等等多種情況

比如 匹配'ades', 有'ades ??ades w?ades-wer ju-ades ?dh ades'等等,可以看出若是RegExp=/\bades\b/這種就不能匹配在字符串首尾的情況,和誤匹配到ades-wer中的ades,所以總體最終的正則匹配表達式會復雜許多,

這里給一個我想好久整出來的匹配表達式,理論上最優(yōu)的是 /(?<=\s|^)ades(?=\s|$)/ig 不過這里js似乎不支持逆序環(huán)視匹配“ (?<= ”和“ (?<! ”,所以不行,瀏覽器報錯,

退而求其次, 用這個/(?:\s|^)ades(?=\s|$)/ig?,這個就是可能會匹配到類名前后的空白字符,用非獲取匹配 替代?逆序環(huán)視,總算匹配出想要的結果了

附上百度百科“正則表達式”詞條:http://baike.baidu.com/view/94238.htm

對了下面贈送個人仿照jQuery寫的一個函數(shù)$('#myid ?=myname')表示查找id=myid的標簽下的name=myname的所有dom對象,其中=號是仿照id和類自造的一個標志,同理有$('#id .className')等等用法。

function?$()?{
	if?(arguments.length?==?0)?return?document.getElementsByTagName('*');
	else?if?(arguments.length?==?1)?var?str?=?arguments[0];
	else?if?(arguments.length?==?2)?{
		var?parent?=?arguments[0];
		var?str?=?arguments[1];
		if?(!isDOM(parent))?return?null;
	}
	else?return?null;
	var?obj?=?parent???parent?:?document;
	var?arr1?=?str.match(/^([#|\.|\=]?)([\w-]+)$/);
	var?arr2?=?str.match(/^#([\w-]+)?([#|\.|\=]?[\w-]+)$/);
	if?(arr1)?{
		switch?(arr1[1])?{
		case?'#':
			return?obj.getElementById(arr1[2]);
		case?'=':
			return?obj.getElementsByName(arr1[2]);
		case?'.':
			return?getByClass(obj,?arr1[2]);
		default:
			return?obj.getElementsByTagName(arr1[2]);
		}
	}
	if?(arr2)?{
		var?subObj?=?obj.getElementById(arr2[1]);
		return?$(subObj,?arr2[2]);
	}
	return?null;
}

function?getByClass(parent,?clsName)?{
	var?arr?=?new?Array(),
		clsArr?=?new?Array(),
		obj?=?parent.getElementsByTagName('*');
	for?(var?i?=?0;?i?<?obj.length;?i++)?{
		clsArr?=?obj[i].className.split('?');
		for?(var?j?=?0;?j?<?clsArr.length;?j++)
			if?(clsArr[j]?==?clsName)?{
				arr.push(obj[i]);
				break;
			}
	}
	return?arr;
}

function?isDOM(obj)?{
	if?(typeof?HTMLElement?===?'object')?return?obj?instanceof?HTMLElement;
	else?return?obj?&&?typeof?obj?===?'object'?&&?obj.nodeType?===?1?&&?typeof?obj.nodeName?===?'string';
}

人懶就沒寫注釋,憑字面意思看吧

1 回復 有任何疑惑可以回復我~

getClassName這個函數(shù) 如果是一個div上有兩個className怎么解決?請大牛給予幫助,謝謝!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
瀑布流布局
  • 參與學習       97751    人
  • 解答問題       758    個

瀑布流布局是網(wǎng)站比較流行的一種布局方式,教你實現(xiàn)三大方式

進入課程
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號