【问题标题】:Element.getElementByTag("mytag") sometimes returns emptyElement.getElementsByTagname 标记") 有时返回空
【发布时间】:2013-09-13 10:32:21
【问题描述】:

CKeditor Element1的外层html如下:

<element1 id="s1">
<mytag>Test1</mytag>
<span> </span>
Some text
<mytag>Test</mytag>
<span> </span>
<mytag>Test3</mytag>
some text
<span> </span>
</element>

var element1=EditorIns.document.getById("s1");
EditorIns.focus();
var mt=element1.getElementsByTag("mytag");
alert(mt.count());

通常它工作正常,但有时 mt.count() 为 0。

我也尝试过这样的 jQuery:

$(element1.$).find("mytag").length;

它也有同样的问题。请帮我解决这个问题

【问题讨论】:

  • 您是否在控制台中检查过element1 是否未定义? “有时”是什么意思?也许是 jsFiddle?
  • 尝试使用 jquery wrapper 选择器或类似的,它总是更安全

标签: javascript jquery find ckeditor nodes


【解决方案1】:
Write the code in a function And call this function same as following :-

<script type="text/javascript">
function testElement(){
var element1=EditorIns.document.getById("s1");
EditorIns.focus();
var mt=element1.getElementsByTag("mytag");
alert(mt.count());
}


window.onload=testElement;

</script>

The element is loading after complete the page load and window.onload will call when all the elements completely loaded on the page.

【讨论】:

    【解决方案2】:

    $(element1).find("mytag").length;
    

    如果 element1 是一个普通的 html 元素

    【讨论】:

    • element1 是 Ckeditor 节点,因此我们可以像 element1.$ 一样用作 html 元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2014-07-16
    • 2017-01-08
    相关资源
    最近更新 更多