假設有一張圖片屬性如下
<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='aa.png')" ... >
如果我jQuery下
$('img').css('filter')
會得到
progid:DXImageTransform.Microsoft.AlphaImageLoader(src='aa.png')
我有沒有辦法直接抓到他裡面的aa.png?
奉fillano大大之命,從討論貼到回答來了。
我沒想到直接抓的辦法,不過要不要考慮用Regular Exression去parsing filter的字串,例如:
<pre class="c" name="code">var str = $('img').css('filter');
var imgName = str.match(/'(\w+\.\w{3})'/);
alert(imgName[1]) //顯示為aa.png
請教一下,那用正規式有辦法把
<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='a.png')" src="blank.gif"... >
還原成這樣嗎?
<img src="a.png"... >
用一點想像力吧...他不是幫你把檔名抓出來了?
如果都要用regexp做掉,可以考慮一下用String.replace(re, "<img src='$1'>")這樣的做法。但是要想辦法取得img的outerHTML...這樣有些瀏覽器可能不支援。
例如:
var a = '<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'a.png\')" src="blank.gif">';
var b = a.replace(/^.*'(\w+\.\w{3})'.*$/, "<img src=\"$1\">");
alert(b);