2013-03-12 70 views
2

请注意,这个问题是来自this one如何阅读HTML直接在jQuery的

跟进我有以下代码(或多或少 - 数据的变化规律)的渲染我的网页上。

<div class="weather-feed"> 
    <img src="http://l.yimg.com/a/i/us/we/52/28.gif"/><br /> 
    <b>Current Conditions:</b><br /> 
    Mostly Cloudy, 19 C<BR /> 
    <BR /><b>Forecast:</b><BR /> 
    Tue - PM Thunderstorms. High: 26 Low: 16<br /> 
    Wed - Mostly Sunny. High: 27 Low: 16<br /> 
    <br /> 
    <a href="http://us.rd.yahoo.com/dailynews/rss/weather/Pretoria__SF/*http://weather.yahoo.com/forecast/SFXX0044_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/> 
    (provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/> 
</div> 

我想这种风格,所以我有一个想法,通过各地的每个部分将在<div> s到修改所呈现的HTML(所需的代码是在链接到前一个问题。

我已经写了下面的jQuery(有很多来自不同人的帮助下),让我在那里我:

$(document).ready(function() { 
    var src = $(".weather-feed"); 

    // remove line feeds 
    var result = src.find("br").remove(); 


    //var condition = src.html().match(/<b>Current Conditions:<\/b>([^<]*)<b>/)[1].trim()); 

    // modify weather icon 
    result += "<div class=\"weather-icon\"><img src=\"" + src.find("img").attr("src") + "\" /></div>"; 

    // modify weather conditions 
    result += src.find("b:nth-child(1)").before("<div class=\"weather-conditions\">") + ; 
    result += src.find("b:eq(1)").before("</div><div class=\"weather-forecast\">"); 
    result += src.find("a:nth-child(1)").before("</div><div class=\"weather-detail\">"); 
    result += src.find("a:nth-child(1)").after("</div"); 

    $("#weather-feed").append(result); 
}); 

目前虽然,所有的渲染是这正是:

的翻译:
img
[对象的对象] [对象的对象] [对象的对象] [对象的对象]

我真的不理解它到底是什么jQuery是在这里做。我的目标是基本上得到一个HTML的字符串表示,并用修改后的字符串替换html。

它对我来说是什么样子,它采用了文字html并把它扔在页面上......我真的不知道。

那么我该如何修改这段代码,将src的html代码写入result我需要它的地方?

回答

4

你应该采取的HTML内容进一步处理..

var src = $(".weather-feed").html(); 
0

你试图将字符串和一系列的jQuery对象。 JavaScript正在调用所述对象的.toString()函数,该函数返回[Object object],以便可以发生。

0

您遇到的问题是您将对象附加到字符串,从而获得对象的字符串表示形式。

改变什么,你必须以下,

$(document).ready(function() { 
    var src = $(".weather-feed"); 
    var result = src.find("br").remove(); 
    result += "<div class=\"weather-icon\"><img src=\"" + src.find("img").attr("src") + "\" /></div>"; 
    result += src.find("b:nth-child(1)").before("<div class=\"weather-conditions\">").html(); 
    result += src.find("b:eq(1)").before("</div><div class=\"weather-forecast\">").html(); 
    result += src.find("a:nth-child(1)").before("</div><div class=\"weather-detail\">").html(); 
    result += src.find("a:nth-child(1)").after("</div").html(); 
    $("#weather-feed").append(result); 
}); 

这样你追加每个元素的字符串,这是你正在寻找的结果发现里面的HTML内容。