iT邦幫忙

0

jQuery如何抓取css filter裡面的值?

假設有一張圖片屬性如下
<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='aa.png')" ... >

如果我jQuery下
$('img').css('filter')
會得到
progid:DXImageTransform.Microsoft.AlphaImageLoader(src='aa.png')

我有沒有辦法直接抓到他裡面的aa.png?

wordsmith iT邦高手 1 級 ‧ 2009-07-08 18:05:35 檢舉
我沒想到直接抓的辦法,不過要不要考慮用Regular Exression去parsing filter的字串,例如:

var str = $('img').css('filter');
var imgName = str.match(/'(\w+\.\w{3})'/);
alert(imgName[1]) //顯示為aa.png
fillano iT邦超人 1 級 ‧ 2009-07-09 12:09:30 檢舉
你就貼到回答吧...應該不會有別的解法

1 個回答

10
wordsmith
iT邦高手 1 級 ‧ 2009-07-10 12:02:09
最佳解答

奉fillano大大之命,從討論貼到回答來了。

我沒想到直接抓的辦法,不過要不要考慮用Regular Exression去parsing filter的字串,例如:

&lt;pre class="c" name="code">var str = $('img').css('filter');  
var imgName = str.match(/'(\w+\.\w{3})'/);  
alert(imgName[1]) //顯示為aa.png  
chan15 iT邦新手 5 級 ‧ 2009-07-10 12:42:50 檢舉

請教一下,那用正規式有辦法把
<img style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='a.png')" src="blank.gif"... >

還原成這樣嗎?
<img src="a.png"... >

fillano iT邦超人 1 級 ‧ 2009-07-10 13:23:37 檢舉

用一點想像力吧...他不是幫你把檔名抓出來了?

如果都要用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);

我要發表回答

立即登入回答