使用JQuery变量来引用一个Class

时间:2016-01-01 13:52:36

标签: javascript jquery

我正在尝试使用classname在Jquery中引用我的checkbox元素。 Classname是一个PHP变量,它的引用我首先存储在我的jquery变量中。当我使用此变量来引用我的类时,变量没有获取值。使用以下代码可以清楚地解决问题:

           <script>
            var ch='<?php echo $ch_cnt; ?>';
             $('input.'+ch).on('change', function (e) {
                if ($('input.'+ch+':checked').length > 3) {
                    $(this).prop('checked', false);
                    alert("allowed only 3");
                }
            });
          </script>

当我在开发者控制台中检查它时,我得到了变量ch中的值,但是在函数中,它显示了ch作为文本而不是显示值。我用它做错了什么?

2 个答案:

答案 0 :(得分:1)

不要将<?echo json_encode($ch_cnt) ?>放在引号内。 json_encode()为您添加字符串引号,因此您可以在Javascript值中获得额外的引号集。这里使用json_encode的重点是它将为Javascript文字输出适当的语法,您不需要引用它。

var ch=<?php echo json_encode($ch_cnt); ?>;

由于您重复此代码,因此您需要将Javascript放在IIFE中,因此ch的范围仅限于该函数。

    <script>
    (function(ch) {
        $('input.'+ch).on('change', function (e) {
            if ($('input.'+ch+':checked').length > 3) {
                $(this).prop('checked', false);
                alert("allowed only 3");
            }
        });
    })(<?php echo json_encode($ch_cnt); ?>);
    </script>

答案 1 :(得分:1)

试试这个

erlc *.erl; ERL_LIBS="..:$ERL_LIBS" erl -noshell -s perf_couch_skew main 1000000 -s init stop
Queue size: 1000000
12321.649 ms