作者ohiammatt (money money money)
看板Ajax
標題[問題] getElementById的問題
時間Sat Mar 3 20:06:58 2012
各位先進好,小弟是寫script的超新手,
最近想寫一個可以自動按網頁上button的script,
用的是firefox 3.5 + Chickenfoot
但目前卡在一個問題卡很久了
就是網頁上有些button為這種形式: <div id="type1" class="type2">開始</div>
這種button我用 click( getElementById("type1"))就可按到了
但有些button為這種形式:<div class="type1">
<span class="type2">開始</span>
</div>
因為沒有id我就不能用之前的方法,所以想請問有什麼方法可以達到和getElementById
相同的效果
請各位指教,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.42.206
1F:推 tonest:getElementsByClassName / getElementsByTagName 03/03 20:10
謝謝你的提示
再請問如果有多個button都是相同形式,如
<div class="type1">
<span class="type2">開始1</span>
</div>
<div class="type1">
<span class="type2">開始2</span>
</div>
那我想要按開始2呢,謝謝
※ 編輯: ohiammatt 來自: 123.195.42.206 (03/03 20:14)
2F:推 s25g5d4:^^^^^^^^^^^^^^^^^^^^^ IE6悲劇 03/03 20:13
3F:→ tonest:考慮用jquery?? 03/03 20:15
4F:→ ohiammatt:請問如果用jquery要朝哪方面的指令下手呢? 03/03 20:18
5F:→ tonest:google: jquery selector 03/03 20:20
6F:推 s25g5d4:看你要怎麼思考 你可以先抓第二個div.type1在抓span 03/03 21:01
7F:→ s25g5d4:也可以直接抓第二個span.type2 當然這是以本例來說 03/03 21:01
8F:→ s25g5d4:通常實際情況DOM會更複雜 就看你怎麼抓了...(茶 03/03 21:01
9F:→ s25g5d4:getElementsByClassName跟ByTagName傳回來都是陣列 03/03 21:02
10F:→ s25g5d4:你可以透過getElementsByClassName(classname)[0] 03/03 21:02
11F:→ s25g5d4:抓到第一個符合條件的目標 03/03 21:03
12F:→ s25g5d4:然後你也可以串接多個getElementsByClassName 03/03 21:04
14F:→ s25g5d4:實際上抓class會比較好 因為直接抓Tag容易因順序問題 03/03 21:12
15F:→ s25g5d4:出錯 但要注意IE6不支援直接抓ClassName 如果不打算作相容 03/03 21:13
16F:→ s25g5d4:就可以直接忽略 反正現在大概也找不到幾個人在用IE6了... 03/03 21:13
17F:推 tonest:樓上大大專業~小弟偷懶的jquery~ 03/03 21:15
18F:→ tonest:$('.type1 .type2') 或 $('.type1').children('.type2') 03/03 21:15
19F:→ s25g5d4:其實jQuery用起來更簡單...(茶 03/03 21:15
20F:→ tonest:IE~讓人愛恨交加 03/03 21:16
21F:→ s25g5d4:其實只是剛好之前有弄過抓ClassName的function... 03/03 21:16
22F:→ tonest:另外建議可以考慮使用Firefox firebug或Google/IE F12 03/03 21:17
23F:→ tonest:Debug起來更方便 03/03 21:17
24F:→ tonest:IE8以後才有內建的開發人員工具 03/03 21:18