【问题标题】:JavaScript, get value of table without IDJavaScript,获取没有ID的表的值
【发布时间】:2017-07-26 10:02:30
【问题描述】:

这是我的桌子,我想获得“Spielzeit”和“Coins”的价值。

我试过很多类似的

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>

【问题讨论】:

  • 为什么不能在表中添加一个 ID?
  • 你想找到什么价值?一分钟???
  • 第一个选择器当然“不起作用”,因为没有标签名为Spielzeit的元素。其他两个应该返回元素......但您必须在之后对它们进行一些额外的过滤才能找到相关元素。
  • 如果可以使用 XPath://th[text()='Spielzeit:']/following-sibling::th

标签: javascript phantomjs casperjs


【解决方案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;

【讨论】:

  • 我不能换表..我只是想获得一些元素...在 Phyton 上我已经完成了 find_between(content, "Coins:", "
    "): start = s.index(first) + len(first) end = s.index(last, start) return s[start:end]
猜你喜欢
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 2022-08-07
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多