2013-03-24 31 views
0

我有一個函數,我想要讀取一個圖像源的路徑的長度,並在if else子句中使用它,但它應該包含的變量數值似乎是空的。 if語句和else語句都沒有被使用。.length()不填充新變量jquery

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function imgresize(img){ 
var strl=img.src.length; 
    if(strl<10) 
    { 
    //do someting 
    } 
    else 
    //do something 
} 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body> 
    <img onclick="imgresize(this)" src="image1.png"> 
</body> 
</html> 

任何想法爲什麼這個strl變量沒有被填充?

+2

如果既不是如果正在執行的塊,也不是其他塊,這個問題是不是與可變但該函數根本不被調用。 – JJJ 2013-03-24 13:06:21

+2

您的代碼可能存在JavaScript錯誤。看看控制檯。什麼是'img'? – str 2013-03-24 13:07:02

+2

你可以建立一個演示問題的小提琴(例如http://jsbin.com)並提供更多的代碼? – 2013-03-24 13:07:59

回答

1

嘗試了這一點:

http://jsfiddle.net/adiioo7/Fg3CB/

JS代碼: -

function imgresize(img) { 
    var strl = img.src.length; 
    if (strl < 10) { 
     alert("Length smaller than 10"); 
    } else{ 
     alert("Length greater than 10"); 
    } 
} 

HTML代碼: -

<img src="http://t2.gstatic.com/images?q=tbn:ANd9GcQTkCsSOSfmGx9uq2EvOeq65-oZBlIzvqSKnqgNgrDEsPn1b7xr" alt="etstst" onclick="imgresize(this);"> 
+0

它的工作比較沒有爲數值10引號。另外,我意識到使用完整的路徑,所以長度超過10個字符(它是/home/fofo/image1.png),所以它永遠不會執行它在if子句中的內容。 – user1013213 2013-03-24 13:35:59

+0

其實比較只適用於img.src而不適用於img.attr('src')。 ThanX的傢伙......這真是太棒了你如何快速給出答案:) – user1013213 2013-03-24 13:41:38

+0

@ user1013213如果你可以(在未來)回答人們澄清問題時,它會更加棒。 – JJJ 2013-03-24 16:24:26

1

試試這個:

現場小提琴here

HTML

<img src="http://cdn1.iconfinder.com/data/icons/musthave/256/Positive.png" alt="etstst" onclick="imgresize(this);"> 
<img src="zzzz" alt="etstst" onclick="imgresize(this);"> 

jQuery的

function imgresize(img) { 
    var stringlen = $(img).attr('src').length; 
    alert("length is : " + stringlen); 
    if (stringlen < 10) { 
     alert("Length smaller than 10"); 
    } else{ 
     alert("Length greater than 10"); 
    } 
}