Ошибка типа: $ (...). Data (...). Текст не является функцией - PullRequest
0 голосов
/ 30 апреля 2020

любая помощь по этому коду? У меня есть следующий код:

    $('.rnyck').click(function() {

    var nyckcontjs=$(this).data('subject2').text();
    console.log(nyckcontjs);
    $('#nyckcont').html(nyckcontjs);
    var nyckid=$(this).data('nyckcontjs');
    $('#nyckid').val(nyckid);

});

В этом коде строка var nyckcont js не работает, выдает ошибку

 Uncaught TypeError: $(...).data(...).text is not a function
at HTMLAnchorElement.<anonymous> (personal.js:9)
at HTMLAnchorElement.dispatch (jquery-3.4.1.js:5237)
at HTMLAnchorElement.elemData.handle (jquery-3.4.1.js:5044)

Содержимое $ (this) .data ('subject2'):

 Для того чтобы превратить вашу идею в то, что можно "достигать" используйте ментальные карты. Они помогут вам в реализации ваших идей, и позволят вам найти новые идеи для вашей счастливой жизни. Ментальные карты очень легко использовать, это бесплатно и доступно всем. Не ждите, начните их использовать прямо сейчас. Начать можно с сервиса <a href="https://www.mindmeister.com/" target="_blank">Mind Meister</a>.

Я видел одно решение для go с чем-то вроде этого:

    $('.rnyck').click(function() {

    var $this=$(this).data('subject2');
    // console.log(nyckcontjs);
    var nyckcontjs=$($this).text();
    $('#nyckcont').html(nyckcontjs);
    var nyckid=$(this).data('nyckcontjs');
    $('#nyckid').val(nyckid);

});

Затем идет новая ошибка

Uncaught Error: Syntax error, unrecognized expression: Для того чтобы превратить вашу идею в то, что можно "достигать" используйте ментальные карты. Они помогут вам в реализации ваших идей, и позволят вам найти новые идеи для вашей счастливой жизни. Ментальные карты очень легко использовать, это бесплатно и доступно всем. Не ждите, начните их использовать прямо сейчас. Начать можно с сервиса <a href="https://www.mindmeister.com/" target="_blank">Mind Meister</a>.
at Function.Sizzle.error (jquery-3.4.1.js:1560)
at Sizzle.tokenize (jquery-3.4.1.js:2216)
at Sizzle.select (jquery-3.4.1.js:2643)
at Function.Sizzle [as find] (jquery-3.4.1.js:862)
at jQuery.fn.init.find (jquery-3.4.1.js:2896)
at new jQuery.fn.init (jquery-3.4.1.js:3006)
at jQuery (jquery-3.4.1.js:152)
at HTMLAnchorElement.<anonymous> (personal.js:11)
at HTMLAnchorElement.dispatch (jquery-3.4.1.js:5237)
at HTMLAnchorElement.elemData.handle (jquery-3.4.1.js:5044)

Есть идеи, что не так?

1 Ответ

2 голосов
/ 30 апреля 2020

.data() возвращает string или JSON в качестве ответа. В вашем случае это должно быть string. Все, что вам нужно сделать, это потерять .text().

var nyckcontjs = $(this).data('subject2');

Для получения дополнительной информации о том, как .data() работает, см. .data() - jQuery Документация API .


Обновление: В случае, если вам нужно получить только текстовое содержимое из .data(), вы можете сделать следующее:

  • Добавьте содержимое в HTML DOM в памяти внутри jQuery.
  • . Примените на нем $.text(), чтобы получить только текстовое содержимое.

Некоторые примеры кода для Вы можете быть порядка:

$('.rnyck').click(function() {
  // Get the HTML content from the data attribute.
  var htmlContent = $(this).data('subject2');
  // Now create an in-memory DOM element with the HTML content.
  // And get the text content of the DOM element.
  var nyckcontjs = $('<div>' + htmlContent + '</div>').text();
  // Set your Text Content to wherever you want.
  $('#nyckid').val(nyckcontjs);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...