我正在尝试构建一个小应用程序,我们的编辑可以选择在打印时从页面中隐藏一些元素,在本例中为作业名称。
但是,我似乎无法让addclass正常工作。它要么什么也不做,或者它将类添加到每个复选框。
为了给我的复选框一个唯一的ID,我使用作业名称作为php中的ID。这些来自数据库。 输入:
<input type='checkbox' id='".$row['name']"'/><div class='tohide ".$row['name']."'>".$row['name']."</div>
使用Javascript:
var src = <?php echo json_encode($row['name']); ?>;
$('input#src').change(function(){
if(this.checked){
$('.tohide').addClass('bold noprint');
}else{
$('.tohide').removeClass('bold noprint');
}
})
我注意到<?php echo json_encode($row['name']); ?>
和<?php echo $row['name']; ?>
没有给出任何结果。我在php中使用相同的$row['name']
来为复选框生成正确的ID。
客户端代码:
<script type="text/javascript">
var src = "";
$('input#'+ src).change(function(){
if(this.checked){
$('.tohide').addClass('bold noprint');
}
else {
$('.tohide').removeClass('bold noprint');
}
})
</script>
使用json_encode
时,我的值为null
答案 0 :(得分:2)
这只是一个字符串:
'input#src'
它不会在字符串中插入变量名,它只是一个文字字符串。要使用src
变量,请将其连接起来:
'input#' + src
我也怀疑这可能不正确:
var src = <?php echo json_encode($row['name']); ?>;
虽然您确实应查看实际的客户端代码以进行确认。但如果值只是一个字符串,那么我怀疑你需要json_encode
。但你肯定需要引用围绕一个字符串:
var src = '<?php echo $row['name']; ?>';
答案 1 :(得分:1)
所有checbox改变的原因是:
$('.tohide').removeClass('bold noprint');
所有复选框都与“.tohide”表达式匹配。
您需要改为$('.tohide.'+this.id).removeClass('bold noprint')
。
免责声明:未经测试,因为您没有提供有效的HTML,这是一个HTML / JS问题。 PHP部分无关紧要。