Если это поможет вам, вы должны получить значение вашего выпадающего списка, например:
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()
в раскрывающемся списке.
Вы можете просто получить доступ к выбранному значению в вашем методе function loadText()
, используя $('#country option:selected').val();
.
Итак:
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);
}
});
});
Обратите внимание, что вы получили атрибуты coun
и description
вашего XML, хотя они не существуют. Вы определили их как id
и desc
в своей переменной.
Во-вторых, вы никогда не запускаете свой метод $.get()
. Таким образом, я сделал это, поместив это в function loadText() { ... }
, который я запускаю при изменении выбора страны.
Смотрите пример работы здесь: http://jsfiddle.net/S6Eqq/32/