我正在开发一个WordPress插件,它为TinyMCE添加了一个按钮,可以让你为所选元素添加一个id属性。我有按钮显示,当它被点击它运行我的功能,我将这个演示称为“idFunc”,它看起来像这样:
function idFunc() {
// Make sure editor has focus.
editor.focus();
// Get currently selected node
var selectednode = editor.selection.getNode();
// Set the id attribute on the node
selectednode.attr("id","newid");
}
如上所述写入idFunc(),单击我的按钮时没有任何反应。如果我将最后一行更改为这样的警告:
function idFunc() {
editor.focus();
var selectednode = editor.selection.getNode();
// Alert with the selected node
alert(selectednode);
}
我按预期收到警告,其中说:
mytestingdomain.com上的页面说: [object HTMLParagraphElement]
如果我把div放在div而不是p元素中,它会说:
mytestingdomain.com上的页面说: [object HTMLDivElement]
所以我知道我很接近,但attr()
函数没有向TinyMCE编辑器中的任何元素添加任何属性。
我做错了什么?
答案 0 :(得分:2)
解决这个问题很容易。
editor.selection.getNode()
为您提供了共同的祖先节点(不是jQuery对象)。
要在节点上设置id属性,您可以调用以下命令之一:
selectednode.setAttribute("id","newid");
或
selectednode.id = "newid";
或使用jQuery
$(selectednode).attr("id","newid");