如何查找具有特定文本的所有内容?

时间:2017-07-23 16:30:34

标签: javascript jquery

给出table之类:

<tr>
    <th scope="row" style="padding-right: 1em;">Date</th>
    <td>
        April&nbsp;26, 1937
        <span class="noprint">; 80 years ago</span>
        <span style="display:none">&nbsp;(<span class="bday dtstart published updated">1937-04-26</span>)</span><br>
        16:30 – 19:30 (<a href="/wiki/Central_European_Time" title="Central European Time">CET</a>)
    </td>
</tr>

如何通过查看所有<td>文字 日期 来获取<th>中的所有日期?例如。 April 26, 1937实际上我只需要year

JS:

var url="https://en.wikipedia.org/w/api.php?action=parse&disablelimitreport=true&format=json&page=" + myTitle +"&redirects&prop=text&callback=?";
$.getJSON(url,function(data){
  wikiHTML = data.parse.text["*"];
  $wikiDOM = $("<document>"+wikiHTML+"</document>");
  $("#results").append("<li>" + $wikiDOM.find('.infobox .date').html() + "</li>");
});

<ul id="results">

</ul>

在上面我正在检查课程.date,但如果它是<th>中的文字怎么办?

JsFiddle使用课程.Locationhttps://jsfiddle.net/zt3ssajd/106/

2 个答案:

答案 0 :(得分:0)

使用选择器contains()查找包含给定文本的所有元素。与siblings结合使用可找到td元素。将它们组合在一起:

$('th:contains("Date")') // Find th with text "Date" in it
    .siblings('td')      // Get sibling td
    .find('.published')  // Find something with class 'published'
    .text().substring(0, 4) // Get first 4 charatecters of text

概念验证(启用控制台):https://jsfiddle.net/petervanderwal/xn73d0d2/1/

答案 1 :(得分:0)

您可以查看:

HTML:

<h2>TABLE DATA</h2>
    <table id="testTable"> 
    <tr>
    <th scope="row" style="padding-right: 1em;">Date</th>
    <td>
        April&nbsp;26, 1937
        <span class="noprint">; 80 years ago</span>
        <span style="display:none">&nbsp;(<span class="bday dtstart published updated">1937-04-26</span>)</span><br>
        16:30 – 19:30 (<a href="/wiki/Central_European_Time" title="Central European Time">CET</a>)
    </td>
    </tr>
    </table>
    <hr />

     <h2>TARGET DATA</h2>
    <p id="showOutPut"></p

JS:

$(document).ready(function(){
var content=$('#testTable tr').find('th').siblings('td').html();
$('#showOutPut').html(content);
console.log('Output : '+content);
});

在JSFiddle Table Test

检查输出目标或控制台

注意:只需使用.text()即可。