如何在 load() 中使用变量?

How to use a variable in load()?

我在 jQuery 文档中找到了这个 .load( url [, data ] [, complete ] )。我写这个

$('#myModal .modal-body').load($(this).attr('href')); 

然后加载 href 的完整 html。如果我这样写,也是一样

var modalUrl=$(this).attr('href');
$('#myModal.modal-body').load(modalUrl);

但是当我这样做的时候

$('#myModal.modal-body').load('/cms/myPage_1.html #content');

仅加载#content 之间的部分。这是我想要的。不幸的是,如果我将变量用作 url like

,那将不起作用
var modalUrl=$(this).attr('href');
$('#myModal.modal-body').load('modalUrl #content'); 

$('#myModal.modal-body').load(modalUrl #content);

$('#myModal.modal-body').load(modalUrl + '#content');

这可能吗?我不能使用固定的 url,因为站点上有不同的链接

感谢您的帮助

首先,这个解是不正确的,为什么?

$('#myModal.modal-body').load('modalUrl #content'); 

因为你跟语言解释这个变量是字符串,它不认识是很自然的


其次,这个解法不正确,为什么?

$('#myModal.modal-body').load(modalUrl #content);

因为您忘记了 + 号,请补充说明您没有将 id 放在双逗号内,如下所示:

$('#myModal.modal-body').load(modalUrl + "#content");

但是即使这样改革也行不通,为什么呢?看三个


三、这个方案乍一看好像是对的,其实不然,为什么?

$('#myModal.modal-body').load(modalUrl + '#content');

因为渲染 JavaScript 文件时浏览器中的最终结果是这样的:

$('#myModal.modal-body').load('/cms/myPage_1.html#content');

那么解决方法是什么?看四个


第四,试试这个解决方案

这里有两个解决方案

  • 第一个解决方案
$('#myModal.modal-body').load(modalUrl + '' + '#content');

这里我们在变量和id之间做一个space

  • 第二种解决方案
$('#myModal.modal-body').load(`${modalUrl} #content`);

在这里,我们使用``

类型的双逗号

这种双逗号的优点是它可以识别 spaces,不像原始的双逗号。