Javascript:在字符串中插入变量

时间:2012-04-23 02:22:08

标签: javascript jquery

我有以下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');

2 个答案:

答案 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`);