我想只得到從dom的png屬性的圖像,有誰知道如何做到這一點?document.getElementsByTagName('img'),如何獲取png圖片?
回答
遍歷圖像,並返回那些具有SRC財產以.png結尾:
var images = document.images;
var pngs = [];
for (var i=0, iLen=images.length; i<iLen; i++){
if (/\.png$/i.test(images[i].src))
pngs.push(images[i]);
}
PNG格式是其圖像陣列SRC以.png結束,將在工作幾乎每個支持腳本的瀏覽器。
如果你想要的東西,使用querySelectorAll(如果可用)和一個簡單的循環在圖像如果不是,那麼下面應該(每lonesomeday的ansewr)適合:
function getPngs() {
if (document.querySelectorAll) {
return document.querySelectorAll('img[src*=".png"]');
}
var images = document.images;
var pngs = [];
var re = /\.png$/i;
for (var i=0, iLen=images.length; i<iLen; i++){
if (re.test(images[i].src)) {
pngs.push(images[i]);
}
}
return pngs;
}
你可能會得到一個節點列表或數組,但如果你想要做的只是遍歷它,那就沒關係。否則,您需要將qSA fork的結果轉換爲一個數組,這是幾行代碼。
感謝RobG,這將有助於跨瀏覽器工作,我測試了它,它工作得很好。 – RubyGladiator
@RubyGladiator是的,它會工作。但是,它在瀏覽器中的速度遠遠低於我的版本,它們具有'querySelectorAll',因此最好先測試一下該版本是否工作。它也會更好地做'if(images [i] .src.substr(-4)==='.png')',這會比正則表達式更快。 – lonesomeday
@lonesomeday - 不知道你的測試是什麼,但jsperf上的[this one](http://jsperf.com/qsavsloop)顯示了在我測試的每個瀏覽器中循環* document.images *的速度快得多。通常情況下,在簡單的循環中編寫更多的代碼比使用複雜函數的代碼更快,代碼更少。 – RobG
沒有安全的方法來做到這一點。瀏覽器不會在任何地方展示哪種類型的圖像已經被加載。此外,你甚至不能保證圖片的URL將有正確的文件擴展名,因爲http://example.com/some/image
是一個非常有效的URL。
你可以使用一個近似「屬性包含」 CSS選擇器與querySelectorAll
與支持它的瀏覽器:
var pngs = document.querySelectorAll('img[src*=".png"]');
那找到所有img
元素與.png
某處他們src
屬性。請注意,這是容易受到誤報和漏報。
此方法在IE 7或更低版本中不起作用。
優秀!!!它工作得很好......謝謝你! – RubyGladiator
它也不會在IE 8中工作,但您也可以在[圖像集合]上迭代(http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-90379117 ),並在* src *屬性上使用正則表達式在沒有* querySelectorAll *支持的瀏覽器中執行相同的操作。一般來說,它可能會更快。 – RobG
好吧,不一定是正則表達式:'String.prototype.indexOf'會正常工作。你可以自己做迭代,但它可能是最快和最容易使用爲這些目的而設計的Javascript庫... – lonesomeday
- 1. 分解document.getElementsByTagName(「img」);
- 2. img src = blob:如何獲取圖片?
- 3. document.getElementsByTagName(「img」);與document.getElementById('testimg');
- 4. 如何從PNG圖像獲取圖標?
- 5. 如何以png格式獲取facebook個人資料圖片?
- 6. img src = blob:如何下載圖片?
- 7. 如何適應PNG背景圖片
- 8. 如何插入PNG圖片中的iPhone
- 9. 如何獲取屏幕截圖圖片
- 10. .png圖片信息
- 11. PNG \圖片 - 定位
- 12. 如何在img頂部獲得背景圖片?
- 13. 如何從jpeg圖片創建png圖片
- 14. 如何提取webcontrol主機中img元素中的圖片?
- 15. 附加base64時獲取黑色圖片img
- 16. 獲取圖片
- 17. 如何在Qt中使用QPainter.drawImage在jpeg/png圖片的背景圖片上繪製jpeg/png圖片?
- 18. 使用的createElement( 'IMG')來獲取JPEG格式代替png格式
- 19. 獲取透明PNG在IE6中工作在img標籤
- 20. 從單個PNG圖像獲取圖標
- 21. 添加PNG水印PNG圖片PHP
- 22. CQ5 - 如何獲取頁面圖片
- 23. 如何從Firebase存儲獲取圖片?
- 24. 如何獲取上傳圖片的DataUrl?
- 25. 如何從AVFrame獲取亮度圖片?
- 26. 如何從源頭獲取圖片?
- 27. 如何從web api url獲取圖片?
- 28. 如何從wikipedia API獲取圖片?
- 29. 如何獲取谷歌圖片
- 30. 如何從ImageView中獲取圖片URL
我已將您的問題標記爲Javascript,因爲我認爲這是問題,但如果標記不正確,請更正標記。 – lonesomeday