DOM Selector获取忽略子元素的元素文本?

时间:2017-01-05 19:14:04

标签: html dom selector

我正在使用Chrome Tab Modifier plugin来动态重命名我每天使用的一些标签。在标题标题定义中,它说明如下:

  

您可以使用{selector}注入任何DOM内容。示例:网站标题{title},{h1},{#id},{。class}等。

以下是我想用来命名标签的元素示例:

<td class="portalTitleInfoVal">
  PORTALNAME
  <a class="portalLink">Change Portal</a>
</td>

这就是我目前正在使用的标题:

{.portalTitleInfoVal:nth-of-type(4)}

但是,当然,标签名为PORTALNAMEChange Portal

如何修改DOM选择器以使选项卡名为“PORTALNAME”?

1 个答案:

答案 0 :(得分:0)

元素的第一个子节点是HTML元素(<a>)之前的纯文本。

$('. portalTitleInfoVal')[0].childNodes[0].nodeValue

看起来这个插件只允许与querySelector兼容的CSS样式元素选择器。然后它从该元素中获取文本。来自github repo

    /**
     * Returns the text related to the given CSS selector
     * @param selector
     * @returns {string}
     */
    getTextBySelector = function (selector) {
        var el = document.querySelector(selector), value = '';

        if (el !== null) {
            value = el.innerText || el.textContent;
        }

        return value.trim();
    };