我有以下jquery代码,它将另一个页面中的#content
div加载到当前页面上的#result
div中:< / p>
$('a').click(function(event){
$('#result').load('abother_page.html #content');
});
正如您所看到的,我将所请求文件的名称以及我想要显示的特定div硬编码到使用load方法发送的字符串中。
我正试图让这个动态,但我的代码遗漏了一些东西:
// get the href of the link that was clicked
var href=$(this).attr('href');
// pass the href with the load method
$('#result').load('href #content');
显然这不起作用,因为我创建的href变量没有插入字符串中。我怎样才能做到这一点?
我尝试了以下方法,但都没有成功:
// Ruby-style:
$('#result').load('#{href} #content');
// Concatenating-style
$('#result').load(href + '#content');
答案 0 :(得分:12)
添加“here”指示的空格:
$('#result').load(href + ' #content');
^---- here
失败尝试的解释如下:
//this code used the string "href" as the url
$('#result').load('href #content');
//javascript doesn't have this syntax for wrapping variables like in PHP
$('#result').load('#{href} #content');
//this code appended "#content" like it was a hash tag
$('#result').load(href + '#content');
答案 1 :(得分:0)
这已经改变了。
从2015年ES6
开始,现在可以使用Template literals
了解更多有关LINK的信息
表达式插值
var a = 5;
var b = 10;
console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.');
// "Fifteen is 15 and
// not 20."
在你的情况下
// get the href of the link that was clicked
var href=$(this).attr('href');
// pass the href with the load method
$('#result').load(`${href} #content`);