我在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();
}
}
});
请注意,注释掉的行有效,而未注释的版本无效。
编辑 - 进一步测试后,以下内容也不起作用:
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输出到控制台会将其显示为未定义。
编辑 - 好的 - 脸上有很多鸡蛋 - 我的代码中的错误...非常抱歉浪费了你的时间
答案 0 :(得分:0)
我无法评论,所以我必须把它作为答案。 你确定没有调用each()中的函数,也许它是在你的内部得到一些例外。
如果您使用的是chrome,那么我会在此行中设置一个断点
$(pageType+' > .question-container > .select-container > select')
然后我会在控制台中运行它
$(pageType+' > .question-container > .select-container > select').length