【问题标题】:jquery adding attributes to multiple select drop-downsjquery将属性添加到多个选择下拉列表
【发布时间】:2012-09-11 14:49:49
【问题描述】:

我有代码(根据 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”属性($filter_color 通过 PHP 添加)添加到选定值。但是当我像这样定位多个选择字段时:

   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");

两个循环都无法工作!

感谢您的提示!

【问题讨论】:

    标签: php jquery drupal


    【解决方案1】:

    上面的代码显然是混合了 javascript 和 php,但无法判断它可能有什么问题。您应该检查(通过在浏览器中查看源代码)生成的 javascript 代码是否是您想要的。如果可能,在此处发布生成的 javascript。

    【讨论】:

    • 啊……我有 emtpy 值,因为在某些情况下值不存在……我在 isset 下添加了整个循环以首先检查变量是否存在!谢谢
    【解决方案2】:

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

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

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

    请注意,我在 PHP 连接前后的变量两侧添加了双引号。这应该会修复语法应该让它再次工作。

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

    【讨论】:

    • 嘿布拉德,对不起,现在我编辑了问题以显示整个代码,Drupal 内联添加了 Javascript。当存在一个循环时,一切正常,当两者都无法正常工作时......
    • 布拉德,没有生成的 php 值存在问题!很抱歉误导您,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多