1
设置在tinyMCE的内容我有一个下拉菜单,对这种变化,我需要设置内容TinyMCE的编辑,我需要弄清楚如何比较选择的选项下拉列表和XML标记,以便我可以设置值。使用jQuery时,数据来自XML
这里是我到目前为止所。
不知道是否有更好的方式来实现这一目标。
设置在tinyMCE的内容我有一个下拉菜单,对这种变化,我需要设置内容TinyMCE的编辑,我需要弄清楚如何比较选择的选项下拉列表和XML标记,以便我可以设置值。使用jQuery时,数据来自XML
这里是我到目前为止所。
不知道是否有更好的方式来实现这一目标。
如果它可以帮助你,你应该得到像你下拉框的值:
value = $('#country option:selected').val();
而且你的代码...
var xml = '<xmlroot><nodes><id>US</id><desc>I am in the USA Description</desc></nodes><nodes><id>FR</id><desc>I am in the French Description</desc></nodes><nodes><id>ES</id><desc>I am in the Spain Description</desc></nodes></xmlroot>';
$(function() {
tinyMCE.init({
mode:'textareas'
});
$("#country").change(function() {
loadText();
});
function loadText() {
//In this example you fetch them from the var xml. Later on you can fetch them through a get() function.
//$.get('file.xml',{}, function(xml) {
var value = $("#country option:selected").val();
$('nodes',xml).each(function() {
//Get id of selected XML node
id = $(this).find("id").text();
//Get description of selected XML node
desc = $(this).find("desc").text();
if (value != "") {
if (id.toLowerCase() == value.toLowerCase()) {
tinyMCE.activeEditor.setContent(desc);
}
}
});
//});
}
});
所以基本上你不需要取当下拉框的change()
事件被触发时的值。
你可以简单地通过利用$('#country option:selected').val();
访问您function loadText()
方法选择的值。
所以:
var value = $('#country option:selected').val();
$.get('file.xml',{}, function(xml) {
$('nodes',xml).each(function() {
id = $(this).find("id").text();
desc = $(this).find("desc").text();
if (id.toLowerCase() == value.toLowerCase()) {
tinyMCE.activateEditor.setContent(desc);
}
});
});
注意,你让你的XML的coun
和description
属性,而这些是不存在的。您在变量中将它们定义为id
和desc
。
其次,你永远不会触发$.get()
方法。所以我通过把这个放到function loadText() { ... }
中,我在国家选择框更改时触发。
请参阅此处的功能示例:http://jsfiddle.net/S6Eqq/32/
我完全不工作。虽然它不报告任何萤火虫错误,但我猜我们的逻辑不正确。对不起,延迟回复 – Mike 2012-01-03 07:54:06
当然这有效。查看此处:http://jsfiddle.net/S6Eqq/27/ – Jules 2012-01-03 08:19:34
非常感谢,我其实也做了同样的事情,虽然我没有过的功能。问题是我使用tinyMCE.activeEditor(desc);相反,我应该有tinyMCE.activateEditor.setContent(desc);我真的很感谢你的帮助 – Mike 2012-01-03 11:32:31