亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

以innerHTML值來查找元素

老師好!

? ? ? 有多個相同的P元素,內容都不一樣,我想用一個innerHTML內容來找到它對應的P元素,怎樣實現?

? ? ? ?就是說,在頁面上有一個輸入框,和多個P元素,然后在輸入框里輸入字符串,從下面的P元素里找到相同的內容,來操作。

? ? ? 這個作用和瀏覽器本身的查找功能一樣。

正在回答

1 回答

<!DOCTYPE?html>
<html>
?<head>
????<meta?charset="UTF-8">
????<title>
????	頁面查找不同標簽的內容
????</title>
????<style?type="text/css">
????body{
????	margin:20px;
????}
????.body{
????	width:?300px;
????	height:?200px;
????	background-color:?#ddd;
????}
????p{
????	font-size:?20px;
????	line-height:?25px;
????	height:?25px;
????}
????.p_serchar{?/*定義被搜索到時的顯示樣式*/
????	background-color:?blue;
????	color:?#fff;
????}
????</style>
????<script?type="text/javascript">
????	function?search(){
????		//獲取input標簽對象(注意是對象不是內容)
????		var?search_str?=?document.getElementById("search_str");
????		var?is_search;?//用于判斷是否出現相同內容
????		alert("你將要搜索:"+search_str.value);
????		
????		//循環遍歷p標簽的HTML內容
????		for?(var?i?=?0;?i?<?4;?i++)?{
????			//獲取第i個p標簽對象
	????		var?p?=?document.getElementsByTagName("p")[i];

	????		p.className="";//初始化,清除每次遍歷后p標簽的class值

	????		if?(p.innerHTML==search_str.value)?{
	????			p.className="p_serchar";
	????			is_search?=?1;?//如果存在相同則記錄為1
	????		}
????		}
????		//在p標簽遍歷完后如果is_search=1,則證明存在有相同內容,否則輸出警告
????		if(is_search!=1){
????			alert("你輸入的內容并不在任何p標簽中存在!");
????		}
????		is_search?=?0;//對判斷元素初始化

????	}
????</script>
</head>
<body>
	<div>
		請輸入關鍵內容:<br>
		<input?type="text"?id="search_str"?placeholder="請輸入已有內容">
		<input?type="button"?onClick="search()"?value="搜索">
	</div>
	<div?class="body">
		<p>你好</p>
		<p>他好</p>
		<p>我好</p>
		<p>大家好</p>
	</div>
	
</body>
</html>

如上代碼,你可以復制到外部編輯器運行,代碼相關位置有詳細解說,還不懂可以先看3-6控制類名那節。

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

慕蓋茨5114537 提問者

非常感謝!你的答案非常好!
2016-04-06 回復 有任何疑惑可以回復我~
#2

慕蓋茨5114537 提問者

我想再問幾個問題, 1、如果要在找到后對樣式進行改變,且是永久性改變,無論找多少個,之前找到的還存在,怎么做? 2、把彈出提示改成在一個DIV里顯示,行不行? 3、P元素的數量有沒有方法檢測出來,而不是事先設定好?
2016-04-06 回復 有任何疑惑可以回復我~
#3

慕蓋茨5114537 提問者

你好! 請問,輸入框直接用點擊回車鍵來完成操作的方法?
2016-04-06 回復 有任何疑惑可以回復我~
#4

緘默蜀黍ONE 回復 慕蓋茨5114537 提問者

“p.className="";//初始化,清除每次遍歷后p標簽的class值”,把這個去掉即可。 2、可以把彈出提示放在一個DIV里顯示,用document.write()方法。 3、把35行for循環中改寫為 for (var i = 0; i < document.getElementsByTagName("p").length; i++)。
2016-04-06 回復 有任何疑惑可以回復我~
#5

緘默蜀黍ONE 回復 慕蓋茨5114537 提問者

http://www.soso.io/article/31887.html
2016-04-06 回復 有任何疑惑可以回復我~
#6

一只特立獨行的doge 回復 慕蓋茨5114537 提問者

for(i=0;i<document.getElementByTagName("p").lenth;i++)應該就不用事先設定好p的個數了?。ú恢缹Σ粚Γ@是我的想法,如果錯了,圈我一下!謝了)
2016-04-08 回復 有任何疑惑可以回復我~
#7

緘默蜀黍ONE 回復 一只特立獨行的doge

getElementsByTagName("p"),“Element”后面加s。你的意思是對的,見我4樓回復
2016-04-09 回復 有任何疑惑可以回復我~
#8

一只特立獨行的doge 回復 緘默蜀黍ONE

謝謝啦
2016-04-09 回復 有任何疑惑可以回復我~
查看5條回復

舉報

0/150
提交
取消

以innerHTML值來查找元素

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號