如何处理 id 选择器中的星号 *
How to handle an asterisk * in an id selector
我有 PHP 代码生成一行按钮供用户单击,每个按钮对应一个学生的成绩。 PHP 还生成 jquery 需要点击按钮随机 select 具有该成绩的学生:
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* 硬编码为成绩时,随机名称 select 或其一部分工作正常,因此问题在于上面的代码未能成功 select #target-A* 按钮。我相信这是因为 * 是一个特殊字符。我该如何解决这个问题?
使用PHP函数自动添加转义字符(反斜杠),似乎没有帮助。
您可以使用 Attribute Equals Selector
$('[id=\"target-$target\"')
与其为每个 ID 绑定一个单独的处理程序,我建议您给它们全部相同的 class,然后将一个处理程序绑定到 class。然后它可以从目标元素中获取 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>" ;
您可以尝试使用完全匹配的 ID 选择器。
$('[id="target-A*"]')
我有 PHP 代码生成一行按钮供用户单击,每个按钮对应一个学生的成绩。 PHP 还生成 jquery 需要点击按钮随机 select 具有该成绩的学生:
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* 硬编码为成绩时,随机名称 select 或其一部分工作正常,因此问题在于上面的代码未能成功 select #target-A* 按钮。我相信这是因为 * 是一个特殊字符。我该如何解决这个问题?
使用PHP函数自动添加转义字符(反斜杠),似乎没有帮助。
您可以使用 Attribute Equals Selector
$('[id=\"target-$target\"')
与其为每个 ID 绑定一个单独的处理程序,我建议您给它们全部相同的 class,然后将一个处理程序绑定到 class。然后它可以从目标元素中获取 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>" ;
您可以尝试使用完全匹配的 ID 选择器。
$('[id="target-A*"]')