2012-04-23 135 views
4

我有它加載從另一個頁面#content DIV,到#result格的當前頁以下的jQuery代碼:的Javascript:字符串內插值變量

$('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'); 

回答

12

通過 「這裏」 加表示的空間:

$('#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'); 
+0

Doh,謝謝!這解決了這個問題,並且非常感謝您的解釋,現在讓我們更加清楚地瞭解ascii註釋的最新動向 – stephenmurdoch 2012-04-23 02:31:22

+0

。下一級。 – 2014-03-04 11:02:30

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