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();
};
我正在使用 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();
};