javascript - 编辑放置匿名函数的 HTML

标签 javascript jquery html

我想更改该脚本所在位置的 HTML 内容:

<script type="text/javascript">
    (function () {
        $.ajax({
            url: "/api/request/something",
            data: {
                // ...
            },
            success: function (data) {
                // ...
                var html = "...";
                $(this).parent().html(html);
                }
            }
        })
    })();
</script>

我将此脚本放入现有的 div 元素中,但该脚本的执行不会更改该 div 元素的 HTML。

最佳答案

使用将设置为 document.currentScript.parentNode 的参数来代替 this:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <script>
    (function (elem) {
        $.ajax({
            url: "https://jsonplaceholder.typicode.com/posts/1",
            data: {
                // ...
            },
            success: function (data) {
                // ...
                var html = "display this";
                $(elem).html(html);
            }
        })
    })(document.currentScript.parentNode); // pass this value
    </script>
</div>

请注意,这不是通常的做法。考虑为您的元素提供一些 idclass 并在位于文档末尾的脚本中引用它:

$.ajax({
    url: "https://jsonplaceholder.typicode.com/posts/1",
    data: {
        // ...
    },
    success: function (data) {
        // ...
        var html = "display this";
        $("#target").html(html);
    }
}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="target"></div>

关于javascript - 编辑放置匿名函数的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920475/

相关文章:

html - 为什么我应该用表格而不是 div 来构建我的 HTML 电子邮件?

javascript - 如何在完全独立的 .js 文件中覆盖/扩展 prototype.js 类

javascript - 使用 Titanium 的 Android 上的大图像

javascript - 脚本不会根据当前 URL 更改 "href"和 "div"内容

javascript - URL 分割问题

html - 3 列布局,中间是流体输入

javascript - 从 Angular 变量填充 jstree ThreeView

javascript - 当表或 div 中的复选框数组时,.each() 内的 .index() 始终返回 0

php - php + mysql 的奇怪 AJAX 行为。部分工作/部分不工作?

html - 流体布局 - 保留布局