我使用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)
看到我自己的错误。它在插件中。回复晚了非常抱歉。在询问问题后,我再次调试了它。谢谢你的选票
答案 0 :(得分:1)
该错误可能是由以下行引起的:
idd = jQuery("#room_num_"+ room_num).val();
我怀疑room_num包含一个#,它会创建一个错误的id。
答案 1 :(得分:0)
您可以使用通用css类使代码变得非常简单,然后在所有项$('.your_class')
中执行foreach,这样您就可以使用$(this)
对象来更改样式或获取值
答案 2 :(得分:-1)
jquery冲突,因为jquery不允许在单个页面上使用相同的id,使用每个循环与类目标。
由于