У меня проблемы с использованием переменных в селекторах класса jQuery.Работает следующее:
$('.contactcapturepage > .question-container > .select-container > select').each(function () {...
Но следующее не работает
var pageType='.contactcapturepage';
$(pageType+' > .question-container > .select-container > select').each(function () {...
Как я могу использовать переменные в моей иерархии селектора классов?
Спасибо.
РЕДАКТИРОВАТЬ: В ответ на запрос дополнительного кода: я вызываю вспомогательную функцию следующим образом:
helper_FormMapper(existing.contact, 'objectToForm','.contactcapturepage');
Подпись помощника:
function helper_FormMapper(object,direction,pageType) {
А потом позжета же функция:
//$('.contactcapturepage > .question-container > .select-container > select').each(function () {
$(pageType+' > .question-container > .select-container > select').each(function () {
var propertyname = $(this).attr('name');
$.log('processing select:'+propertyname);
if (propertyname != 'country'
&& propertyname != 'state') {
if (direction == 'objectToForm') {
$("select#" + propertyname + " option").each(function () { this.selected = (this.text == object[propertyname]); });
}
else {
object[propertyname] = $('#' + propertyname + ' :selected').text();
}
}
});
Обратите внимание, что закомментированная строка работает, в то время как некомментированная версия не работает.
EDIT - после дальнейшего тестирования следующее также не работает:
var path = pageType + ' > .question-container > .text-container > input';
$(path).each(function () {...
РЕДАКТИРОВАТЬ - но работает следующее:
var path = '.contactcapturepage > .question-container > .text-container > input';
$(path).each(function () {...
Что здесь происходит!
РЕДАКТИРОВАТЬ: следующее также работает
pageType = '.contactcapturepage';
$(pageType + ' > .question-container > .text-container > input').each(function () {
Таким образом, похоже, что это не имеет ничего общего с jQuery, а как-то связано с повреждением параметра функции.Вывод pageType в консоль показывает, что он не определен.
EDIT - Хорошо - много яйца на лице - ошибка в моем коде ... Очень жаль, что я потратил ваше время