2012-07-25 3214 views
0

我的問題是我需要從event.content的結果創建一個字符串。 Event.content返回一個包含html標籤的條目。我可以像container.innerHTML = event.content一樣使用它。我需要event.content作爲一個字符串。我試圖做這樣的事情:將html標籤和內容轉換爲字符串

var a = '' + event.content; 

但它不起作用。這裏event.content的結果:

<img src="http://image.weather.com/web/common/wxicons/31/30.gif?12122006" alt="" />Partly Cloudy, and 84 &deg; F. For more details? 

我無法將其轉換爲javascript中的字符串。可能嗎?我也嘗試過String(event.content)。好吧,我把我的整個代碼。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"> 
<title>Hava Durumu</title> 

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 

    google.load("feeds", "1"); 
function havabas(){ 

    var feed = new google.feeds.Feed("http://rss.weather.com/weather/rss/local/TUXX0014? cm_ven=LWO&cm_cat=rss&par=LWO_rss"); 
    feed.load(function(result) { 
    if (!result.error) { 
     var entry = result.feed.entries[0]; 
     var container = document.getElementById("weather"); 
     var c = entry.content; 

     var regex = /<img.*?src="(.*?)".*?>.*?([0-9]+\s*&deg;)/; 
     var results = regex.exec(entry.content); 
     var html = '<img src= ' + results[1] + ' alt="" /> ' + results[2]; 

     container.innerHTML = html; 

    } 
    }); 
} 

function initialize() { 
havabas(); 
setInterval(function(){havabas()},2000); 
} 
google.setOnLoadCallback(initialize); 

</script> 
</head> 
<body> 
<div id="weather"></div> 
</body> 
</html> 
+1

我看來像'event.content'已經是一個字符串。什麼「不起作用」? – 2012-07-25 13:06:41

+0

var results = regex.exec(event.content); 在這裏,它不起作用。但是,當我將分配給var a =''這樣的變量時;我可以在exec中使用它。 – 2012-07-25 13:08:30

+0

又一次,究竟是「不管用」?你有錯誤嗎?或者它沒有返回你想要的結果?什麼是「正則表達式」? 'console.dir(event.content)'或'typeof event.content'給你什麼?如果我們不知道'event.content'是什麼,那麼我們不能幫你。 HTML只能作爲字符串存在於JavaScript內部,所以你的問題有點混亂。 – 2012-07-25 13:10:04

回答

1

您的正則表達式無效。它與entry.content中的字符串不匹配。原因是&deg;。你的代碼改成這樣:

var regex = /<img.*?src="(.*?)".*?>.*?([0-9]+)/; 
var results = regex.exec(entry.content); 
var html = '<img src= ' + results[1] + ' alt="" /> ' + results[2] + ' &deg;'; 

DEMO

0

也許你忘了逃避無論是單引號或雙引號與反彈?這是一個有效的字符串 -

var string="<img src=\"http://image.weather.com/web/common/wxicons/31/30.gif?12122006\"  alt=\"\" />Partly Cloudy, and 84 &deg; F. For more details?"; 
+0

好問題是event.content返回這個它沒有硬編碼。它正在以這種方式工作。但我需要使用事件。內容不是 2012-07-25 13:17:08

-1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
</HEAD> 
<script> 
function get1() 
{ 

var i='<img src="http://image.weather.com/web/common/wxicons/31/30.gif?12122006" alt="" />Partly Cloudy, and 84 &deg; F. For more details?'; 
var j='\'' +i+ '\''; 
alert(j); 
} 
</script> 
<BODY onload='get1();'> 

</BODY> 
</HTML> 

請試試這個

+0

這與OP的問題無關...... – 2012-07-25 13:31:59