javascript - 使用 Jquery 选择所有旁边

标签 javascript jquery html

我正在尝试通过 html 进行解析并获取所有 <h3>...</h3><table>...</table> 旁边, 但只得到第一个 <h3></h3><table></table>来自 $('h3 + table', thecontents) .另外,如果我们想要 h3 怎么办?基于它的内容(即 12 月 14 日,星期五,12 月 15 日,星期六,...)?

$( document ).ready(function() {
    $.getJSON('http://www.whateverorigin.org/get?url=' + encodeURIComponent('...') + '&callback=?', function(data){
        var thecontents = data.contents;
        var required = $('h3 + table', thecontents).html();
        $("#hello").html("<pre>" + required + "</pre>");
    });
}); 

thecontents的内容或 data.contents

<html>
...
<h3><strong>Friday, Dec. 14</strong></h3>
<table>...</table>
...
<h3>...</h3>
<table>...</table>
</html>

我当前的网站返回 required$('h3 + table', thecontents).html()

<html>
<body id="hello">
<pre>
    <p></p>
    ...
    <p></p>
</pre>
</body>
</html>

最佳答案

您要转换的代码或 parse string to html错了,应该是这样的

var thecontents = $('<div></div>').html(data.contents)

解析后得到h3table但是 table 的前一个元素应该是 h3你可以试试这个

$(document).ready(function() {
  $.getJSON('http://www.whateverorigin.org/get?url=' + encodeURIComponent('...') + '&callback=?', function(data) {
    var thecontents = document.createElement('html')
    thecontents.innerHTML = data.contents;
    var required = $(thecontents).find('h3 + table');

    var theResults = '';
    $.each(required, function(i, obj) {
      // .prev() used to get previous sibling or h3
      theResults += $(obj).prev()[0].outerHTML + '\n';
      // the table
      theResults += obj.outerHTML + '\n';
    })

    $("#hello").html("<pre>" + theResults + "</pre>");
  });
});

它使用 .outerHTML得到类似 <h3>Title</h3> 的字符串同时 .html()将返回 innerHTMLTitle仅。

关于javascript - 使用 Jquery 选择所有旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927329/

相关文章:

javascript - css - 透明图像的动画背景

javascript - GetJSON jquery 返回未定义

javascript - 将全局 javascript 数组值传递到 HTML 标记中

javascript - 单击添加元素并单击删除相同的元素

html - 我的网站在 iPad 中的媒体查询失败

javascript - 使用 mvc 打印 pdf

javascript - 使用 css(或 javascript)标准化不同比例的图像区域?

jquery - 像这个示例网站上那样实现略圆 Angular 的最简单方法是什么?

javascript - 使用 cookies JQuery 存储数组列表

javascript - 鼠标悬停(显示内容)javascript