DOM 获取元素文本的选择器忽略 children?

DOM Selector to get text of element ignoring children?

我正在使用 Chrome 的 Tab Modifier plugin 来动态重命名我每天使用的一些选项卡。在选项卡标题定义中,它表示如下:

You can inject any DOM content with {selector}. Examples: {title} for website title, {h1}, {#id}, {.class}, etc.

这是我想用来命名选项卡的元素示例:

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

这是我目前使用的标题:

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

但是,当然,该选项卡被命名为 PORTALNAMEChange Portal

如何修改 DOM 选择器,使选项卡仅命名为 "PORTALNAME"?

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

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

看起来这个插件只允许 CSS 样式元素选择器兼容 querySelector. It then grabs the text from that element. From their 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();
    };