Убрать косые черты, которые добавляет jQuery при возврате HTML через ajax - PullRequest
6 голосов
/ 07 октября 2010

Я использую метод jQuery ajax для получения данных из базы данных и возврата данных через объект json. Однако одним из значений в этом объекте json является строка HTML. Я в основном делаю именно то, что видно здесь , за исключением того, что мне нужно знать, как я могу удалить косые черты, которые jQuery добавляет в строку HTML. Есть идеи?

Пример

json.HTML = Click <a href=\"http://example.com/example.php\">here</a>;

//Needs to be
json.HTML = Click <a href="http://example.com/example.php">here</a>;

Я надеялся сделать это без кода, если это возможно.

UPDATE

Хорошо, я обнаружил, что если я выполню htmlentites до того, как оно будет возвращено, то косые черты не появятся при поступлении значения. Теперь, какую функцию jquery я бы использовал для вставки этой строки в элемент td без добавления косых черт. Функции HTML или .text.

Вот как это выглядит прямо из значения json.HTML,

Click &lt;a href=\&quot;http://example.com\&quot;&gt;here&lt;/a&gt;

А вот после того, как оно отображается с помощью .html

Click <a href=\"http://example.com\">here</a>

А вот после того, как он отображается с использованием .text

Click &lt;a href=\&quot;http://example.com\&quot;&gt;here&lt;/a&gt;

Интересно, нужно ли мне использовать .val, может быть? О, еще одна вещь, я хочу, чтобы этот HTML отображался буквально, а не фактический HTML, который будет вставлен в код.

Ответы [ 3 ]

2 голосов
/ 08 октября 2010

Не думаю, что ваша проблема в добавлении слешей в jquery.Я не думаю, что вы возвращаете json должным образом из своего php, вы используете json_encode и даете заголовок json?как будет выглядеть результат json, если вы сохраните его в виде текстового файла?

также, если вы не можете получить его правильно, вы можете использовать

unescape function

выведите это как ваш json

    $foo =  'Click &lt;a href=&quot;http://example.com&quot;&gt;here&lt;/a&gt;';

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); 
    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); 
    header("Cache-Control: no-cache, must-revalidate" ); 
    header("Pragma: no-cache" );
    header("Content-type: text/x-json");
    echo json_encode($foo);

и посмотрите, делает ли то же самое

РЕДАКТИРОВАТЬ не используйте текст, который вы хотите что-то вроде

       $('#table_id td').html(json_response);

, то есть псевдокод

2 голосов
/ 08 октября 2010

После игры с этим в течение ОЧЕНЬ долгого времени.Я обнаружил, что я удаляю косые черты из данных поста и сохраняю это значение в массиве, который был правильным, но позже я снова использовал необработанные значения постов, откуда и шли слэши.Все, что мне нужно было сделать, это использовать значение, на котором я уже удалил косую черту.

2 голосов
/ 07 октября 2010

Может быть так просто:

stringvar.replace('\\','');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...