JS獲取img的src詳解

一、JS獲取img的src值

在Web開發中,經常需要獲取圖片的地址,以實現一些預處理或統計工作,此時就需要獲取img元素的src值。

我們可以通過獲取圖片元素並訪問其src屬性來獲取圖片的地址:

let img = document.getElementById('myImage');
let imgSrc = img.src;
console.log(imgSrc);

上述代碼中,我們通過getElementById獲取id為myImage的img元素,並通過訪問其src屬性獲取圖片地址,並將其保存在imgSrc變量中。

二、JS獲取img標籤的src

雖然和上一個標題類似,但本小節指的是直接獲取img標籤中的src屬性值,而不是獲取通過DOM操作獲取img元素後的src屬性值。

我們可以通過getAttribute方法獲取img標籤的src:

let imgSrc = document.getElementById('myImage').getAttribute('src');
console.log(imgSrc);

上述代碼中,我們通過getElementById獲取id為myImage的img元素,並通過getAttribute方法獲取img標籤的src,並將其保存在imgSrc變量中。

三、JS獲取img的src屬性

有時候,我們需要獲取img元素的src屬性本身,這時可以用getAttribute方法獲取src屬性:

let imgSrcAttr = document.getElementById('myImage').getAttributeNode('src').value;
console.log(imgSrcAttr);

上述代碼中,我們通過getAttributeNode獲取img元素的src屬性節點,並通過value屬性獲取其值,並將其保存在imgSrcAttr變量中。

四、JS獲取img的寬高

有時候需要獲取圖片的寬高,這時可以通過width和height屬性獲取:

let img = document.getElementById('myImage');
let width = img.width;
let height = img.height;
console.log('寬:' + width + ',高:' + height);

上述代碼中,我們通過getElementById獲取id為myImage的img元素,並通過width和height屬性獲取其寬高,並將其分別保存在width和height變量中。

五、JS怎麼獲取img的src

有三種方式可以獲取img的src:

1. 直接獲取img元素的src屬性值:

let imgSrc = document.getElementById('myImage').src;
console.log(imgSrc);

2. 通過getAttribute方法獲取img標籤的src屬性值:

let imgSrcAttr = document.getElementById('myImage').getAttribute('src');
console.log(imgSrcAttr);

3. 通過getAttributeNode方法獲取img元素的src屬性節點:

let imgSrcAttrNode = document.getElementById('myImage').getAttributeNode('src').value;
console.log(imgSrcAttrNode);

六、JS獲取img的file

如果我們需要上傳圖片,那麼就需要獲取img的file對象,而不是其src屬性值。可以使用input元素或者new FileReader()方法獲取該對象:

let input = document.getElementById('fileInput');
let file = input.files[0];
console.log(file);

上述代碼中,我們通過id獲取input元素,並通過files屬性獲取其文件列表,從中獲取第一個文件並保存在file變量中。

七、JS獲取img的寬高為0

有時候,使用JS獲取img的寬高可能會出現0的情況,這是因為圖片沒有加載完成,可以採用以下方法解決:

1. 使用window.onload事件:

window.onload = function() {
    let img = document.getElementById('myImage');
    let width = img.width;
    let height = img.height;
    console.log('寬:' + width + ',高:' + height);
}

2. 使用img元素的onload事件:

let img = document.getElementById('myImage');
img.onload = function() {
    let width = img.width;
    let height = img.height;
    console.log('寬:' + width + ',高:' + height);
}

八、JS獲取div里的img

有時候我們需要獲取div等元素中的img標籤,可以使用querySelectorAll方法獲取所有img元素:

let imgList = document.querySelectorAll('div img');
for (let i = 0; i < imgList.length; i++) {
    console.log(imgList[i].src);
}

上述代碼中,我們通過querySelectorAll方法獲取div元素中的所有img元素,並使用循環遍歷所有的img元素,輸出其src屬性值。

原創文章,作者:OKXW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147929.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OKXW的頭像OKXW
上一篇 2024-11-02 13:16
下一篇 2024-11-02 13:16

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25

發表回復

登錄後才能評論