好的 首先,这是我的第一篇文章,所以我最初为我可能犯的任何"新手"错误道歉。 我将尽量详细,并尽我所能将其列出。
我在做什么:
创建供公司内部使用的 Chrome 应用。
问题:
解析包含来自已加载 ajax 调用的完整 HTML 数据的 Ajax 调用:
我无权访问的内容:
基于服务器的PHP或MYSQL。
我可以访问的内容:
包含我需要循环访问的数据的所有页面的完整 html 数据,以及通过 put 和 get 将新数据发布到服务器。
应用程序已经设置为访问跨域数据的权限,因此我不会遇到 ajax 及其跨域策略的问题。 所有数据都成功拉取到我需要拉取的页面。
我正在使用什么:JqueryJavascript 用于可能支持或不支持的东西,或者我对 J Query 缺乏了解,因为它非常健壮,并且仍在尝试掌握可用的不同 api。
问题:
我能够用我需要的 html 数据加载 ajax 数据。 我已经列出了在我使用 Jquery "find" 在我最初使用 ajax 进行的调用的 html 中定位 tbody 以及到目前为止我过滤掉的内容后,html 的外观。 我还将其打印到chrome控制台中的consol.log(变量名)。我在代码下方列出了我对此数据的目标。 我不担心跨浏览器兼容性,因为这将是一个仅限 chrome 的应用程序,其他浏览器不会使用该代码。
<tbody>
<tr>
<td><strong>Header 1</strong></td>
<td><strong>Header 2</strong></td>
<td><strong>Header 3</strong></td>
<td><strong>Header 4</strong></td>
<td><strong>Header 5</strong></td>
<td><strong>Header 6</strong></td>
<td><strong>Header 7</strong></td>
</tr>
<tr >
<td>image location link</td>
<td>another link</td>
<td>Product</td>
<td>New</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
<tr>
<td>image location link</td>
<td>another link</td>
<td>Product2</td>
<td>New</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
<tr>
<td>image location link</td>
<td>another link</td>
<td>Product</td>
<td>old</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
</tbody>
目标:上面的 Tbody 将列出更多的 tr,但这是可用内容的样本。 我需要每次都解析数据,并找到每个包含相同产品类型和列出"新"的 td 的 tr。
我非常感谢你们在这方面的帮助,并期待听到你们的回应。
我尝试使用Jquery:
尝试使用包含和每个循环来创建新的数据对象。 与其提供一些糟糕的代码哈哈,我希望有人可以提供一些很棒的框架代码,如果可能的话,可以帮助我进入下一个级别。
提前感谢!
所以你可以找到新的或找到或旧的,摆脱旧的。这取决于你。
下面是提供第二个表的另一个更新。这应该让你开始。基本上,它跳过第一个"tr",因为这是标题,并在 4 位置找到其余的 New。最接近的遍历 dom 到第一个父项。
http://jsfiddle.net/JzUrq/2/
var data = $("#holder").html();
$("#newTable").append($(data).find("tr:eq(0)"));
$(data).find("tr:gt(0) :nth-child(4):contains('New')").closest('tr').each(function(index){
var row = "<tr>"+$(this).html()+"</tr>";
$("#newTable").append(row);
});
您可以做的其他事情是将 html 设置为整个表,并简单地隐藏任何带有旧表的内容。