Как обрабатывать звездочку * в селекторе идентификаторов

У меня есть 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 * в качестве оценки, поэтому проблема в том, что приведенному выше коду не удается успешно выбрать кнопку # target-A *. Я считаю, что это потому, что * это особый характер. Как я могу обойти это?

Использование функций PHP для автоматического добавления escape-символов (обратной косой черты), похоже, не помогает.

0

Решение

Вместо того, чтобы привязывать отдельный обработчик к каждому идентификатору, я предлагаю вам дать им один и тот же класс и привязать один обработчик к классу. Затем он может получить идентификатор из целевого элемента.

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>"  ;
2

Другие решения

Вы можете использовать Атрибут Равный Селектор

$('[id=\"target-$target\"')
1

Вы можете попробовать использовать селектор совпадения точных идентификаторов.

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

Пример : https://jsfiddle.net/DinoMyte/1a6mwb13/3/

0
По вопросам рекламы [email protected]