Синтаксис для сложного селектора jquery внутри живого слушателя

Сначала я использовал следующий синтаксис в своем коде, но он ничего не сделал без ошибок:

$("div[data-content-tab]").find("input").on("change input paste keyup",function(){
    console.info ($(this).val());
})

Я перешел на второй синтаксис и получил следующую ошибку:

$(document).on("change input paste keyup",'div[data-content-tab].find("input")',function(){
    console.info($(this).val());
})

Uncaught Error: Syntax error, unrecognized expression: div[data-content-tab].find("input")

Каков правильный синтаксис для синтаксиса оба выше?

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
0
23
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам необходимо изменить div[data-content-tab].find("input") на div[data-content-tab] input, так как .find("input") является недопустимым синтаксисом

$(document).on("change input paste keyup",'div[data-content-tab] input',function(){
    console.info($(this).val());
})

Спасибо. А как насчет первого синтаксиса?

Ali Sheikhpour 27.10.2018 11:51

Первый синтаксис тоже подходит, но он не будет работать для динамически добавляемого элемента.

lucumt 27.10.2018 11:52

Первый пример выглядит полностью рабочим. Возможно, возникла проблема с вашим html.

$("div[data-content-tab]").find("input").on("change input paste keyup",function(){
    console.info ($(this).val());
})
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-content-tab='1'><input /></div>

Спасибо. по другому ответу я понял, что это не работает с динамически добавляемыми элементами.

Ali Sheikhpour 27.10.2018 11:53

Другие вопросы по теме