1

我正在尝试从以下 html 块中提取几个变量。如果您不介意提供帮助,将不胜感激!

<div id="services">
    <div id="service1">
      <div class="left">
        <img alt="Service Picture" src="/images/service-picture.jpg" />
        <h2 class="serviceHeading">A Beautiful Header</h2>
        <p>Some nice text.</p>
      </div>
      <div class="right">
        <p>Some more nice text.</p>
      </div>
      <br class="spacer"/>
      <a class="topButton" href="#" title="Back to Top">Back to Top</a>
    </div>
    <div id="service2">
      <div class="left">
        <img alt="Service Picture" src="/images/service-picture-2.jpg" />
        <h2 class="serviceHeading">Another Beautiful Header</h2>
        <p>Some even nicer text.</p>
      </div>
      <div class="right">
        <p>Some even more nicer text.</p>
      </div>
      <br class="spacer"/>
      <a class="topButton" href="#" title="Back to Top">Back to Top</a>
    </div>
  </div>

我希望该函数遍历#services并获取 each 的srcimg以及来自 each的内容<h2>

这是我目前所拥有的......

 $("#services div").each(function () {
   var $this_html = $(this).html();
   var h2_text = "";
   var img_src = "";
 });
4

4 回答 4

3

这应该有效。使用选择器很重要,#services > div因为每个服务 div 都有一个子 div。如果没有子选择器,您将获得每项服务两次。

$("#services > div").each(function () {
   var imgSrc= $(this).find('img').attr('src');
   var headerContent = $(this).find('h2').text();
});
于 2010-01-19T16:28:56.857 回答
2

看一下查找功能

http://docs.jquery.com/Traversing/find

在每个功能中,您可以像这样找到您需要的内容:

$(this).find('h2').text();
$(this).find('img').attr('src');
于 2010-01-19T16:20:46.627 回答
1

你很近。

$("#services div").each(function () {
   var img_src= $(this).find('img').attr('src');
   var h2_text = $(this).find('h2').text();
 });

试一试。

于 2010-01-19T16:21:23.120 回答
0

我想你想要这个:

$("#services div.left").each(function () {
   var $this_html = $(this).html(); // don't know if you still want this
   var h2_text = $(this).find(">h2").text();
   var img_src = $(this).find(">img").attr("src");
 });
  • div.left被添加,所以你总是得到一个包含正确元素的 div。
  • 我们>find函数中使用来抓取孩子(更高效)。
  • $this_html如果除了 h2/img 之外不需要整个 HTML,请删除该行,后者不依赖于它。
于 2010-01-19T16:35:09.463 回答