2

请注意,这个问题是这个问题的后续问题

我的页面上有以下代码(或多或少 - 数据定期更改)。

<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);
});

但目前,所有的渲染都是这样的:

[对象对象]
图像
[对象对象][对象对象][对象对象][对象对象]

我真的不明白 jquery 到底在做什么。我的目标是基本上获得 html 的字符串表示形式,并用修改后的字符串替换 html。

在我看来,它正在获取文字 html 并将其扔到页面上……但我真的不知道。

那么如何修改此代码以将 html 代码写入srcresult需要的位置?

4

3 回答 3

4

您应该将html内容进一步处理..

var src = $(".weather-feed").html();
于 2013-03-12T11:34:20.860 回答
0

您正在尝试连接一个字符串和一系列 jQuery 对象。JavaScript 正在调用该.toString()对象的函数,该函数返回[Object object],因此可以发生。

于 2013-03-12T11:37:29.547 回答
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 内容附加到字符串中,这就是您要查找的结果。

于 2013-03-12T11:38:53.793 回答