jquery将属性添加到多个选择下拉列表

时间:2012-09-11 14:49:49

标签: php jquery drupal

我有代码(在Brad Christie建议之后编辑):

drupal_add_js('

jQuery(document).ready(function(){ 

jQuery("#selFinishes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_color . ') {
jQuery(this).attr("selected","selected")
}   
})

});
', "inline");

它成功地将“selected”属性(通过PHP添加$ filter_color)添加到所选值。但是当我定位多个这样的选择字段时:

   drupal_add_js('

jQuery(document).ready(function(){ 

jQuery("#selFinishes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_color . ') {
jQuery(this).attr("selected","selected")
}   
})

 jQuery("#selThemes option").each(function(index) {
if (jQuery(this).val() == ' . $filter_theme . ') {
jQuery(this).attr("selected","selected")
}   
})

});
', "inline");

两个循环都无法正常工作!

感谢您的提示!

2 个答案:

答案 0 :(得分:2)

上面的代码显然混合了javascript和php,但不可能告诉它可能有什么问题。您应该检查(通过在浏览器中查看源代码)生成的javascript代码是否符合您的意图。如果可能,请在此处发布生成的javascript。

答案 1 :(得分:1)

我有根据的猜测是,生成的JavaScript在输出时无效。通过变量名称($filter_color& $filter_theme)进行猜测它们中的一个(或两个)很可能是一个字符串,使得测试if (...val() == string)失败,这使得整个块成为JavaScript会导致语法错误并完全失败。

尝试更改输出以将值包含在字符串中(可能类似于以下内容):

[snip].val() == "' . $filter_theme . '") {[/snip]

注意我在PHP连接之前和之后在变量的任一侧添加了双引号。这应该可以解决实习使其再次工作的语法。

同样,问题中的信息太少,但这是我对解决方案的猜测