Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как правильно устанавливать одинарные кавычки в data отрибуте? (https://javascript.ru/forum/dom-window/75505-kak-pravilno-ustanavlivat-odinarnye-kavychki-v-data-otribute.html)

s24344 15.10.2018 15:21

Как правильно устанавливать одинарные кавычки в data отрибуте?
 
Здравствуйте. Подскажите, пожалуйста, как правильно устанавливать одинарные кавычки в data отрибуте. В таком виде я получаю следующую ошибку:
SyntaxError: Unexpected end of JSON input
В дальнейшем я планирую сделать следующие действия:
let data = JSON.stringify(json); 
data = JSON.parse(data).cards;

<div
    class="data"
    style="display: none;"
    data-dc-news-feed-preview-options='{"cards": "latest from the open", "content": "Watson vs Nicklaus in Golf's most memorable playoff"}'
></div>

рони 15.10.2018 15:34

s24344,
заменить на
&#39;

Dilettante_Pro 15.10.2018 15:42

var data='{"cards": "latest from the open", "content": "Watson vs Nicklaus in Golf\'s most memorable playoff"}';
var j = JSON.parse(data);
alert(j.content);

рони 15.10.2018 15:48

Dilettante_Pro,
в html с наклонной чертой не получится наверное ... ? :-?

Dilettante_Pro 15.10.2018 15:49

Цитата:

Сообщение от рони
в html с наклонной чертой не получится наверное

Ага:cray:

Dilettante_Pro 15.10.2018 15:50

Ё-кавычка получается
<div
    class="data"
    style="display: none;"
    data-dc-news-feed-preview-options='{"cards": "latest from the open", "content": "Watson vs Nicklaus in Golf`s most memorable playoff"}'
></div>
<script>
var data= document.querySelector('.data').getAttribute('data-dc-news-feed-preview-options');
var j = JSON.parse(data);
alert(j.content);
</script>

рони 15.10.2018 15:54

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<div
    class="data"
    style="display: none;"
    data-dc-news-feed-preview-options='{"cards": "latest from the open", "content": "Watson vs Nicklaus in Golf&#39;s most memorable playoff"}'></div>

</body>
<script>
    var data = document.querySelector(".data").dataset.dcNewsFeedPreviewOptions;
    data = JSON.parse(data);
    alert(data.content);
</script>
</html>

Dilettante_Pro 15.10.2018 16:05

Вот такой финт ушами
<div
    class="data"
    style="display: none;"
    data-dc-news-feed-preview-options="{'cards': 'latest from the open', 'content': 'Watson vs Nicklaus in Golf\'s most memorable playoff'}"
></div>
<script>
var data= document.querySelector('.data').getAttribute('data-dc-news-feed-preview-options');
data=data.replace(/.'/gi,function(str) { 
   return str[0] == "\\" ? str[1] :  str[0] + '"'; 
}); 
var j = JSON.parse(data);
alert(j.content);
</script>

:write:

laimas 15.10.2018 17:13

Либо заменять на html сущности как пишет рони, либо url кодирование json строки.

s24344 16.10.2018 09:44

Всем спасибо за помощь.


Часовой пояс GMT +3, время: 09:11.