2014-10-30 63 views
2

好吧..這可能是一個挑戰。基本上我需要選擇一個圖像,我希望它每隔幾秒就會淡入淡出。使用Javascript僅選擇一個沒有Class或ID的圖像

在正常情況下,這將是相當直接...但問題是我正在工作的網站有一定的限制。

首先圖像沒有ID或類(只有替代文本,我不能編輯這個來添加一個類) - 它坐在一個有類的表中,但我似乎無法弄清楚向下鑽取以選擇使用Javascript的特定圖像....系統也不支持jQuery。

我可以使用CSS沒問題:TABLE.tableClass TD.tdClass IMG {} 但不幸的是,系統只能在IE7/8中查看,所以CSS3不是讓圖像閃爍的選項。

如果有人有任何建議,我會很感激。最好的是我能想到的是選擇表格,然後是td,然後是其中的第一個圖像......但我似乎無法弄清楚這將如何在js中完成。

非常感謝提前!

+0

爲什麼你需要支持IE7(8)? – Cerbrus 2014-10-30 12:13:15

回答

3

你可以只使用document.querySelector找到元素(或document.querySelectorAll得到的列表中的所有匹配的元素):

document.querySelector('TABLE.tableClass TD.tdClass IMG'); 

然而,這不是在IE 7不支持也不是getElementsByClassName()。 ..

你可能想考慮完全放棄對IE7的支持。許多主要網站不再支持IE7。越來越多的網站/圖書館也放棄了對IE *的支持。

+0

不幸的是,這個系統非常龐大,爲了支持現代瀏覽器,這將是一項巨大的任務......他們認爲,如果它在當前的狀態下工作,它不應該被搞亂!我不知道'querySelector',但這聽起來就像我後面的事情。感謝您的建議,我會放棄它! :) – David 2014-10-30 12:15:30

+2

_「讓它支持現代瀏覽器」_?你的意思是安裝現代瀏覽器將是一項巨大的任務?安裝chrome確實沒有太多的工作。請記住,querySelector在IE7中不起作用。 (在IE7中基本上沒有這樣做的方式) – Cerbrus 2014-10-30 12:18:06

+0

安裝chrome不是問題,問題是當網站在chrome中打開時,網站完全崩潰..大多數功能停止工作。目前它只適用於那些舊版本的IE,並且他們不想改變:(我認爲絕大多數用戶都在IE8上,所以我會努力讓它與IE8一起工作。我可能通過在'網站'和'系統'之間切換來混淆事物來描述相同的事情..對不起,哈哈!) – David 2014-10-30 12:30:25

1

如果您可以編寫一個CSS選擇器來定位您之後的特定IMG元素,那麼如果存在多個可能的候選項,則始終可以使用document.querySelector()document.querySelectorAll()

var allImagesMatching = document.querySelectorAll('table.tableClass td.tdClass img'); 

for (var i = 0; i < allImagesMatching.length; ++i) { 
    var imgElement = allImagesMatching[i]; 
    // Do stuff here... 
} 

或者,只是adressing第一個匹配:

var imgElement = document.querySelector('table.tableClass td.tdClass img'); 
// Do stuff here... 
相關問題