JQuery заменить строку из загруженного содержимого AJAX - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь заменить все экземпляры одной строки на другую. Вот что у меня есть:

Я загружаю html-файл шаблона через ajax, и это содержимое:

<div style="background-image:url({URL}/photo.png)">
    <div>
        <p>
           <h1>
             <a href="{URL}">link 1</a>
           </h1>
        </p>
        <a href="{URL}">link 2</a>
    </div>
</div>

Так что в основном мне нужно заменить все экземпляры {URL} на фактический URL.

Я пробовал что-то вроде этого:

$.get("template.html")
    .done(function(data) {
        data.replace("/{URL}/g", "http://example.com");
});

или

$.get("template.html")
    .done(function(data) {
        $(data).html($(data).html().replace("{URL}", "http://example.com"));
});

но ни один из них не работает.

1 Ответ

0 голосов
/ 06 ноября 2018

Правильный синтаксис для использования глобальной замены не data.replace("/{URL}/g", "http://example.com"); Правильный синтаксис: data.replace(/{URL}/g, "http://example.com");

Я попробовал приведенный ниже код, и он работает как положено:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript">
        $().ready(function () {
            $.get("template.html", )
                .done(function (data) {
                    data = data.replace(/{URL}/g, "http://yourdomain.com");
                    $("#content").html(data);
                                });
                });

    </script>
</head>
<body>
    <div id="content"></div>
</body>
</html>

Имейте в виду, что функция data.replace() не изменит фактического содержимого объекта data, поэтому я написал data = data.replace(/{URL}/g, "http://yourdomain.com");, а затем вставил измененное содержимое в тег div. Наконец, в вашем файле template.html первая строка должна выглядеть следующим образом: <div style="background-image:url('{URL}/photo.png)'">, потому что url () ожидает строку!

Пожалуйста, обратитесь к JavaScript String replace () Метод для получения более подробной информации.

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