JavaScript,获取没有ID的表的值

时间:2017-07-26 10:02:30

标签: javascript phantomjs casperjs

这是我的桌子,我希望得到" Spielzeit"和"硬币"。

我尝试了很多像

document.querySelector("div.page Spielzeit");

document.getElementById('page').getElementsByTagName('th');

document.querySelectorAll("#page th");  

但没有任何效果。

我找不到我的桌子,因为没有桌子ID。

也许你知道如何找到"我的价值观。

由于

<div id="page">
    <table style="margin-left: 125px; margin-top:50px; width: 300px;">
        <tbody>
            <tr>
                <th style="text-align: left;">Benutzername:</th>
                <th style="color: #9e7538; text-align: right;">Dantes999</th>
            </tr>
            <tr>
                <th style="text-align: left;">Reich:</th>
                <th style="color: #9e7538; text-align: right;">Not empire</th>
            </tr>
            <tr>
            </tr>
            <tr>
                <th style="text-align: left;">Charaktere:</th>
                <th style="color: #9e7538; text-align: right;">0</th>
            </tr>
            <tr>
                <th style="text-align: left;">Spielzeit:</th>
                <th style="color: #9e7538; text-align: right;"> Minuten</th>
            </tr>
            <tr>
                <th style="text-align: left;">Coins:</th>
                <th style="color: #9e7538; text-align: right;">0 I-Coins</th>
            </tr>
            <tr>
                <th style="text-align: left;">Coins:</th>
                <th style="color: #9e7538; text-align: right;">0 V-Coins</th>
            </tr>
            <tr>
                <th style="text-align: left;">Lagerpasswort:</th>
                <th style="color: #9e7538; text-align: right;">000000</th>
            </tr>
            <tr>
                <th style="text-align: left;">Loeschcode:</th>
                <th style="color: #9e7538; text-align: right;">1234567</th>
            </tr>
        </tbody>
    </table>
</div>

1 个答案:

答案 0 :(得分:1)

如果您的网页上只有一个表格,document.querySelector("table").get(0)应该会为您提供表格。

其次,page是HTML中的ID,而不是类。因此,应该使用#而非.

进行选择

您可以将HTML更改为:

<div id="page">

<table style="margin-left: 125px; margin-top:50px; width: 300px;">
    <tbody><tr>
        <th class="item" style="text-align: left;">Benutzername:</th> <th class="value" style="color: #9e7538; text-align: right;">Dantes999</th>
    </tr>
    <tr>
        <th class="item" style="text-align: left;">Reich:</th> <th 
class="value" style="color: #9e7538; text-align: right;">Not empire</th>
    </tr><tr>
    </tr><tr>
        <th class="item" style="text-align: left;">Charaktere:</th> 
<th class="value" style="color: #9e7538; text-align: right;">0</th>
    </tr>
    <tr>
        <th class="item" style="text-align: left;">Spielzeit:</th> <th 
  class="value" style="color: #9e7538; text-align: right;"> Minuten</th>
    </tr>
    <tr>
        <th class="item" style="text-align: left;">Coins:</th> <th 
 class="value" style="color: #9e7538; text-align: right;">0 I-Coins</th>
    </tr>
    <tr>
        <th class="item" style="text-align: left;">Coins:</th> <th 
 class="value" style="color: #9e7538; text-align: right;">0 V-Coins</th>
    </tr>

    <tr>
        <th class="item" style="text-align: left;">Lagerpasswort:</th> <th class="value" style="color: #9e7538; text-align: right;">000000</th>
    </tr>
    <tr>
        <th class="item" style="text-align: left;">Loeschcode:</th> <th class="value" style="color: #9e7538; text-align: right;">1234567</th>
    </tr>

    </tbody></table>

现在,您可以使用document.querySelector(".item[text='Spielzeit']);选择相应的项目并获取其值的下一个元素

所以你的代码应该是:

var elem = document.querySelector(".item[text='Spielzeit']");
var value = elem.parentNode.querySelectorAll('.value').html;