使用此元素而不是标识符获取 textarea 的值

Get value of textarea with this element and not identifier

我想检查 tinymce 中的空白文本区域

$(".tooltip-empty-editor").each(function() {        

    if( $.trim( tinymce.get(this).getContent() ) == '' ) { 
        // .....
    }

});

html

<textarea class="editor tooltip-empty-editor " name="modif" >....</textarea>

但是我遇到了错误 tinymce.get(this).getContent() this 他需要一个 ID。

如何使用这个 with tinymce 获取 textarea 的值?

为什么不能定义 id 并按如下方式访问它?

$(".tooltip-empty-editor").each(function() {        

    if( $.trim( tinymce.get($(this).attr("id")).getContent() ) == '' ) { 
        // .....
    }

});

根据文本区域之间的相互关系,您可以尝试查找索引。您需要一个 sibling,或者如果它们都是同一节点 (parent) 的子节点,则无需费心 => $(this).index()

如果页面上只有一个 => textarea = tinymce.get(0)

HTML 期望:

<div class="parent">
    <div class="sibling">
        <textarea class="editor tooltip-empty-editor " name="modif" >....</textarea>
    </div>
    <div class="sibling">
        <textarea class="editor tooltip-empty-editor " name="modif" >....</textarea>
    </div>
</div>

JS

$(".tooltip-empty-editor").each(function() {
    var index = $(this).closest('.sibling').index(),
        //index = $(this).index(),
        textarea = tinymce.get(index); // get() requires an id or a number

    if( $.trim( textarea.getContent() ) == '' ) {
        // .....
    }
});

如果您的 html 被父级上的其他元素污染,您将需要使用 .filter() 从中获取索引。

根据产品文档,TinyMCE get()API"Returns an editor instance by id"。 id 参数应为 String。在您的示例中,您似乎试图将 "this" 不是字符串的对象传递给它。

我会给页面上的每个文本区域一个唯一的 ID 属性,然后您可以使用该 ID 引用每个文本区域。

正如另一位发帖人指出的那样,您还可以使用整数来访问页面上的每个 TinyMCE 实例(例如 tinymce.get(0)tinymce.get(1)