You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TinyMCE编辑器中用JS或jQuery获取HTML元素节点值及属性值

嘿,我来帮你搞定这两个TinyMCE的问题!你已经能拿到nodeName了,再往前一步就搞定文本和属性值啦,咱们一个个说:

1. 获取HTML元素的节点文本值

你之前用jQuery的text()没成功,大概率是没把选中的节点正确转换成jQuery对象,或者直接用原生JS的方法会更稳妥。针对你给出的<span color="error">That's great</span>例子,试试下面的代码:

var ed = tinyMCE.activeEditor;
var selectedNode = ed.selection.getNode();

// 方法一:原生JS(推荐,跨浏览器兼容性好)
var textContent = selectedNode.textContent;
// 或者用innerText(注意:innerText会忽略隐藏文本,textContent则不会)
// var textContent = selectedNode.innerText;

// 方法二:jQuery方式(确保页面已经引入jQuery)
var textContent = $(selectedNode).text();

alert(textContent); // 这里会弹出"That's great"

如果还是没拿到值,可以先检查一下selectedNode是不是你要的元素节点——有时候选中的可能是文本节点(nodeType为3),这时候需要先判断:

if (selectedNode.nodeType === 1) {
  // 这里才是元素节点,放心操作文本内容
}

2. 获取节点的属性值

针对你例子里的color="error"自定义属性,不管是原生JS还是jQuery都有对应的方法:

自定义属性(比如color)

var ed = tinyMCE.activeEditor;
var selectedNode = ed.selection.getNode();

// 方法一:原生JS
var colorValue = selectedNode.getAttribute('color');

// 方法二:jQuery
var colorValue = $(selectedNode).attr('color');

alert(colorValue); // 弹出"error"

如果是标准样式属性(比如style里的color)

要是你的标签是标准写法<span style="color:red">That's great</span>,想获取样式值的话,得用style相关的方法:

// 原生JS
var styleColor = selectedNode.style.color; // 返回"red"或者RGB格式值

// jQuery
var styleColor = $(selectedNode).css('color');

同样,记得先确认选中的是元素节点(nodeType===1),避免操作文本节点导致的错误~

内容的提问来源于stack exchange,提问作者DIVA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:11:33