在CKEditor中使用jQuery选择input元素

时间:2011-12-12 15:32:28

标签: jquery ckeditor

好吧,这个让我发疯了 - 我只是不明白为什么这么难。

我创建了一个CKEditor并将自己的标签添加到图像对话框中。在此新标签中,用户可以从列表中选择图片网址。

我想从这些信息中设置图像网址框(第一个标签上的标准输入框)。通常我可以通过ID或类选择它,但CKEditor每次都为每个输入提供不同的ID。

是否有一种简单的方法可以在对话框中选择其他元素,因为在线阅读这些内容并不是没有意义。

(为什么一切都没有像#34;#image_input_1_1"这意味着图片标签,输入1,CKEditor实例1,它会更容易...... )

3 个答案:

答案 0 :(得分:1)

最后,我这样做了:

// get current dialog
var dialog = CKEDITOR.dialog.getCurrent();
// get the info tab in the dialog
dialog.selectPage('info');
// get the txtUrl element (found id using devtools plugin)
var tUrl = dialog.getContentElement('info', 'txtUrl');
// set this input box to by variable
tUrl.setValue(strLink);

我希望这将有助于将来。

答案 1 :(得分:0)

您可以进行一些DOM遍历:转到最近的公共父级,然后从那里下降到图像选项卡,然后按类/标记名称选择输入。

更新

好的,这是你的遍历,就像CKeditor疯狂复杂的DOM树周围的一次小旅行:

$(this)
 .parents("[role=tabpanel]")
 .prevAll("[name=info]")
 .find("label:contains(URL)")
   .next()
     .find("input")

this是自定义标签中的某个元素。

答案 2 :(得分:0)

如果您正在谈论默认的图像对话框,那么您可以这样做:

dialog.setValueOf( 'info', 'txtUrl', newValue);

如果您需要使用其他输入,请使用devTools插件:http://docs.cksource.com/CKEditor_3.x/Howto/Field_Names