如何在id选择器中处理星号*

时间:2015-12-22 22:15:12

标签: php jquery jquery-selectors

我有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函数自动添加转义字符(反斜杠),似乎无济于事。

3 个答案:

答案 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)

您可以尝试使用完全ID匹配选择器。

$('[id="target-A*"]')

示例:https://jsfiddle.net/DinoMyte/1a6mwb13/3/