Невозможно выбрать идентификатор добавленного div с помощью селектора ‘ends with’

#javascript #jquery

#javascript #jquery

Вопрос:

Благодаря моей работе я определил, как успешно выбрать добавленный div по щелчку:

 $(document).on('click', '.deletebutton', function() {
  

Я также успешно выбрал divs, используя селектор jquery ‘ends with’

 $(document).on('click', '[id$=button]', function() {
  

Когда я пытаюсь выбрать добавленный div С помощью селектора jquery ‘ends with’, это не работает. Есть мысли о том, почему это может быть?

Спасибо!

Комментарии:

1. .deletebutton это класс, а не идентификатор, поэтому идентификатор, который заканчивается на «button», не будет соответствовать элементу с классом «deletebutton».

2.Как выглядит ваша структура DOM? Если бы у вас был id="somebutton" , этот селектор работал бы. Это успешный пример селектора ends with. (Вы могли бы сделать это с помощью class вместо id , но это будет соответствовать только class="something deletebutton" , но не class="deletebutton something" , потому что это не в конце.)

3. @T.J. Crowder Вы были правы, спасибо за исправление.

4. @MaheerAli — Не беспокойтесь. (Также не мой downvote. 🙂 )

Ответ №1:

Всем спасибо за помощь. В моем коде произошла синтаксическая ошибка. Я прошу прощения. Это должно быть:

$(document).on(‘click’, ‘[class$=button]’, function() {

Комментарии:

1. Работа этого селектора не гарантируется. Если у вас есть <div class="somebutton"> , то да, это работает, также, если у вас есть <div class="something somebutton"> , но не если у вас есть <div class="somebutton something"> . Это потому, что строка «somebutton something»» не заканчивается на «button». Вероятно, вам следует пересмотреть свой подход здесь — один вариант — иметь общий класс типа «button» для всего, другой — использовать запятую для перечисления всех классов, которые заканчиваются на «button», например, $(document).on('click', '.deletebutton,.addbutton,.editbutton', function() {