2014-01-26 81 views
0

這是一個非常簡單的if語句,我怎麼試過nummours的方法來輸入代碼。 我所希望做的是確保 「captch_style」 的的.src是== source_oneif statement sourc issue javascript

HTML

<img id="captch_style" src="img/captcha/captcha_0.jpg" 
width="200" height="60" alt=/> 

單獨的JS文件

<script type=text/javascript> 


var source_one="img/captcha/captcha_0.jpg"; 

if (document.getElementById("captch_style").src === source_one){ 

     inputValue.style.borderColor="#00ff00"; 
} 

else { 
inputValue.style.borderColor="#ff0000"; 

} 

<script> 
+4

你不應該在你的js文件中有腳本標籤。 – Shomz

回答

3

src屬性通常包含擴展的網址,而不是相對的。所以你比較(例如),http://example.com/img/captcha/captcha_0.jpgimg/captcha/captcha_0.jpg,所以它不匹配。

您可以檢查,如果它只是與結尾:

if (document.getElementById("captch_style").src.substr(-source_one.length) === source_one) { 
    // It does 
} 
else { 
    // It doesn't 
} 

substr function回報子,你把它的字符串。如果使用負索引調用它,它將從字符串的末尾開始並計數,所以「abcdef」.substr(-2)gives you「ef」`。

或者,你可以只得到src屬性而不是屬性(.getAttribute("src")),它應該包含任何你在HTML的圖像具有從字面上看,但有些瀏覽器(只是舊的?)可能展開不當。 (我不記得,如果它與src屬性發生,它肯定是用來與hrefa元素。)


另外,作爲Shomz在評論中指出,你不能有一個script標籤你的JavaScript文件;我期望給你一個語法錯誤,雖然也許有些瀏覽器JavaScript引擎可以容忍它。 JavaScript文件只包含JavaScript代碼。 script標記用於在HTML文件中放入JavaScript代碼塊。

+0

這種方法是否適用於顏色?如果我要檢查文字顏色? var spam = document.getElementById(「margin06」); var color =「#ff0000」; document.getElementById(「margin06」)。color.substr(-5)=== color.substr(-5) – user3237322

+0

@ user3237322:*** ***如果***:1.元素具有顏色'property(也許你的意思是'.style.color'?),2,你真的只想檢查五個(不是六個)顏色的字符,3,如果這個屬性可靠地用十六進制表示,它是不。事實上,不同的引擎會對該屬性的值使用不同的符號,包括十六進制(您使用的符號),「rgb」,「rgba」,顏色*名稱*(如「紅色」)......理論上,他們甚至可以使用'hsl',但我還沒有看到(尚)。 –