我有PHP代码生成一行按钮供用户点击,每个按钮对应一个学生的成绩。 PHP还会生成导致按钮单击以随机选择具有该等级的学生所需的jquery:
echo "<div id='targetGradeButtons' class='testing'>Randomly select student with target grade: " ;
foreach ($uniquetarget as $i => $target) {
echo "<button id='target-$target'>$target</button> " ; // Generate button for randomly selecting students with certain target
// Create jquery to handle button clicks
echo "<script>
$('#target-$target').click(function(){
randomName('target', '$target');
});
</script>" ;
}
echo "</div>" ;
这适用于大多数年级。但是,它对A *等级不起作用。当我硬编码A *作为等级时,它的随机名称选择器部分工作正常,所以问题是上面的代码无法成功选择#target-A *按钮。我相信这是因为*是一个特殊的角色。我怎么能绕过这个?
使用PHP函数自动添加转义字符(反斜杠),似乎无济于事。
答案 0 :(得分:2)
我建议你给它们所有相同的类,并将单个处理程序绑定到类,而不是将单独的处理程序绑定到每个ID。然后它可以从目标元素中获取ID。
echo "<div id='targetGradeButtons' class='testing'>Randomly select student with target grade: " ;
foreach ($uniquetarget as $i => $target) {
echo "<button id='target-$target' class='target'>$target</button> " ; // Generate button for randomly selecting students with certain target
}
echo "</div>" ;
// Create jquery to handle button clicks
echo "<script>
$('.target').click(function(){
randomName('target', this.id.split('-')[1]);
});
</script>" ;
答案 1 :(得分:1)
您可以使用Attribute Equals Selector
$('[id=\"target-$target\"')
答案 2 :(得分:0)