将 smarty 变量分配给 jquery 选择器

Assign a smarty variable to jquery selector

我正在使用以下代码将 smarty 变量分配给 jquery 选择器。

{literal}
    <script type="text/javascript">
        $( document ).ready(function() {
            var prodid = {/literal}{$product.product_id}{literal};

            $( "#option_" + prodid + "_1252" ).change(function() {
                if(4281 == $(this).val()){       
                    //some code    
                }
            });    
        });
    </script>
{/literal}

我可能犯了一些语法错误,因为即使我做对了

var prodid = 766;

在选择器中我得到这个

$( "#option_" + prodid + "_1252" ).change(function() {

而不是这个

$( "#option_766_1252" ).change(function() {

对我做错了什么有什么想法吗?

您的 jquery 选择器中有不必要的 var 声明。试试这个:

$( "#option_" + prodid + "_1252" ).change(function() {

Smarty 不会为您解析 javascript,因此除非您解析

,否则您不会得到 $( "#option_766_1252" )
$( "#option_{/literal}{$product.product_id}{literal}_1252" ).change(function() {