在DOM

时间:2015-10-21 20:17:56

标签: javascript regex dom

我试图从DOM中获取出生日期(不是生日,而是日期)。

我尝试使用Birthday</th><td>创建regex以替换''之前的所有内容,但我无法弄清楚如何在日期之后删除其余内容分裂&amp;加入。在使用日历年的每天数组之前,我想我会转向StackOverflow。

我可以使用以下方式获取HTML:

document.getElementById('personal-info-view').innerHTML

返回:

"<tbody><tr><th scope="row">Birthday</th><td>October 21</td></tr><tr><th scope="row">Marital Status</th><td>Single</td></tr></tbody>"

从这里开始:

<table id="personal-info-view" class="additional-info-listing" summary="Personal Details">
   <tbody>
     <tr>
        <th scope="row">Birthday</th> 
        <td>October 21</td>
     </tr>
     <tr>
        <th scope="row">Marital Status</th>
        <td>Single</td>
     </tr>
  </tbody>
</table>

上传更新:

当我在LinkedIn上的关系即将到来的生日时,我正试图收到警报。同时查看他们的个人资料。

5 个答案:

答案 0 :(得分:2)

  1. 使用jQuery:

    $(function(){
        var birthdate = $("tbody > :first-child > :last-child").text();
        alert(birthdate);
    });
    
  2. 使用Javascript:

    $(function(){
        var birthdate = document.querySelector("tbody > :first-child > :last-child").innerHTML;
        alert(birthdate);
    });
    
  3. 正则表达式:(见@Washington Guedes,很高兴为其他回答者提供信用)。

  4. 希望这有帮助!

    建议:针对未来,您应该考虑您选择的选择器并将其存储在如下变量中:

    var birthdaySelector = "tbody > :first-child > :last-child";
    

    如果您正在处理的网站因任何原因发生了变化,或者您自己找到了最佳选择器,则可以通过修改birthdaySelector变量中的值来轻松更改它。这样你也可以用你喜欢的JS方式实现它。

    如果你想知道如何使用它,你可以这样做:

    的jQuery

    var birthdate = $(birthdaySelector).text();
    

    的Javascript

    var birthdate = document.querySelector(birthdaySelector).innerHTML;
    

答案 1 :(得分:1)

试试这个正则表达式:

[^>]+\d+(?=<)

Regex live here.

这将是:

document.getElementById('personal-info-view').innerHTML.match(/[^>]+\d+(?=<)/)[0];

希望它有所帮助。

答案 2 :(得分:1)

您可以直接使用.querySelectorAll获取DOM元素。

document.querySelectorAll("#personal-info-view tbody tr td")[0].innerHTML;

答案 3 :(得分:1)

我想我试试这个:

document.getElementById('personal-info-view').children[0].children[0].children[1].innerHTML;

<强> Demo

如果你能在那个表格单元格上获得一个ID会更好。这非常脆弱(依赖于DOM)。

答案 4 :(得分:0)

尝试这样的事情:

RedFruitFactory