Измените текст кнопки в (этом) контексте [dубликат]

  $ string = str_replace ("", "", $ string);   

Я считаю, что preg_replace будет искать что-то вроде [: space:]

84
задан John Magnolia 18 June 2011 в 09:27
поделиться

2 ответа

Проблема

Внутри обратного вызова этот относится к объекту jqXHR вызова Ajax, а не к элементу, к которому привязан обработчик событий. Подробнее о том, как это работает в JavaScript .


Решения

Если ES2015 + доступен для вас, то использование функции стрелки, вероятно, будет Простой вариант:

  $. ajax ({// ... success: (json) = & gt; {// `this` ссылается на то, что` this` означает вне функции}}  );   

Вы можете установить опцию context :

Этот объект станет контекстом всех обратных вызовов, связанных с Ajax. По умолчанию контекст представляет собой объект, который представляет параметры ajax, используемые в вызове ( $. AjaxSettings сливается с настройками, переданными в $. Ajax ). (...)

  $. ajax ({// ... context: this, success: function (json) {// `  это `относится к значению` context`}});   

или использовать $. proxy :

  $. ajax ({// ... success: $ .proxy (  function (json) {// `this` относится ко второму аргументу` $ .proxy`}, this)});   

или сохраните ссылку на значение этого вне обратного вызова:

  var element = this;  $ .ajax ({// ... success: function (json) {// `this` относится к объекту jQXHR // используется` element` для ссылки на элемент DOM // или `$ (element)` для ссылки  к объекту jQuery}});   

Связано

192
ответ дан Felix Kling 15 August 2018 в 21:15
поделиться
  • 1
    Пример context работал так же, как ожидалось. Спасибо! – Zim84 2 March 2013 в 19:09
  • 2
    да для контекста . – user1063287 9 December 2014 в 23:01
  • 3
    Да ! Отлично, спасибо вам, человек – Zl3n 20 December 2014 в 09:23
  • 4
    Общий качающийся помощник. – kta 31 January 2015 в 08:24
  • 5
    Поскольку я становлюсь лучше с JavaScript и строю более крупный и сложный проект, я, наконец, несколько понял это, но, увидев этот ответ, мне очень помогает знать, что мои предположения верны, а не только теория, поэтому я лично благодарю вас, даже если против политики комментариев SO! знак равно – JasonDavis 29 April 2015 в 03:40
  jQuery (". custom-filter-options .sbHolder ul li a"). each (function () {var myStr = jQuery (this) .text (); var myArr = myStr.split ("(  "), url = 'ваш url'; // New Code data = myArr [0]; try {jQuery.ajax ({url: url, context: this, type: 'post', data: data, success: function (  data) {if (data) {jQuery (this) .html (data);} else {jQuery (this) .html (myArr [0]);}}};} catch (e) {}}); [  ! d0] 
-1
ответ дан Vishal Sanwar 15 August 2018 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: