为什么我无法获得变量中的值?

时间:2018-05-22 09:23:42

标签: javascript jquery wordpress

我使用jquery和php来运行代码。我只是从数据库中获取值,然后存储在变量中。然后我调用变量,但错误代替值#"#"由变量

输出

代码如下

    <?php
$rooms = file_get_contents('API FUNCTION HERE');
$rooms = json_decode($rooms);

 foreach ($rooms->rooms as $room) {
    $room = (array)$room;   
    foreach($room as $key => $value){
        echo '<input type="hidden" id="room_num_'.$key.'" name="room_num_'.$key.'" value="'.$value.'">';
    }
 }
 ?>
<script>

    jQuery(document).ready(function($){
        t = setTimeout("checkColors()",1000);
        t = setTimeout("checkColors2()",1000);


    jQuery(".imp-shape").mouseleave(function(){
        t = setTimeout("checkColors()",100);
        t = setTimeout("checkColors2()",100);


    });
  });
    function checkColors(){
            jQuery( jQuery(".imp-shape-container").children('div') ).each(function() {
                room_num = jQuery(this).data('room_num');
                idd = jQuery("#room_num_"+ room_num).val();

                if(idd != undefined){
                    if(idd == 0){
                        jQuery(this).css('background-color','rgba(76, 175, 80, 1)');
                        jQuery(this).css('fill','rgba(76, 175, 80, 1)');
                        jQuery(this).addClass('greenclass');
                    }
                    if(idd == 1){
                        jQuery(this).css('background-color','rgba(183, 28, 28, 1)');
                        jQuery(this).css('fill','rgba(183, 28, 28, 1)');
                        jQuery(this).addClass('redclass');
                    }
                }

    });

错误如下

jquery.js?ver=1.12.4:1 Uncaught Error: Syntax error, unrecognized expression: #room_num_#
    at Function.fa.error (jquery.js?ver=1.12.4:1)
    at fa.tokenize (jquery.js?ver=1.12.4:1)
    at fa.select (jquery.js?ver=1.12.4:1)
    at Function.fa (jquery.js?ver=1.12.4:1)
    at Function.a.find (autoptimize_db0b5f09817b9858a2c808534bb07b1c.js:2)
    at n.fn.init.find (jquery.js?ver=1.12.4:1)
    at n.fn.init.a.fn.find (autoptimize_db0b5f09817b9858a2c808534bb07b1c.js:2)
    at a.fn.init.n.fn.init (jquery.js?ver=1.12.4:1)
    at new a.fn.init (autoptimize_db0b5f09817b9858a2c808534bb07b1c.js:2)
    at n (jquery.js?ver=1.12.4:1)

看到我自己的错误。它在插件中。回复晚了非常抱歉。在询问问题后,我再次调试了它。谢谢你的选票

3 个答案:

答案 0 :(得分:1)

该错误可能是由以下行引起的:

idd = jQuery("#room_num_"+ room_num).val();

我怀疑room_num包含一个#,它会创建一个错误的id。

答案 1 :(得分:0)

您可以使用通用css类使代码变得非常简单,然后在所有项$('.your_class')中执行foreach,这样您就可以使用$(this)对象来更改样式或获取值

答案 2 :(得分:-1)

jquery冲突,因为jquery不允许在单个页面上使用相同的id,使用每个循环与类目标。

由于