2015-12-02 75 views
0

我有一個包含這樣一個span元素的變量:爲什麼ReplaceWith()不適用於包含HTML的變量?

$elem.find("img, img + span").each(function(innerIndex) { 
    var $figcaption = $(this).next('span') 

我想用一個<figcaption>標籤,而不是替換此變量裏面的<span>標籤。我嘗試使用ReplaceWith(),但它不會允許它在一個變量上。

我該怎麼辦變量內更換?在這個階段我不直接操縱DOM。

+1

其replaceWith(),而不是ReplaceWith() – DinoMyte

+0

可以告訴你,你是如何調用'replaceWith'的完整的例子? – Stryner

+0

'replaceWith()'是jQuery的API,它jQuery對象的工作不是字符串,對字符串使用'replace' – vinayakj

回答

1

,如果你需要它像

<span> 
    <figcaption> 
     Copyright information 
    </figcaption> 
</span> 

你可以嘗試的.html()

var $figcaption = '<span>Copyright information</span>'; 
$($figcaption).html('<figcaption>'+ $($figcaption).text()+'</figcaption>'); 

,如果你需要它像

<figcaption> 
    Copyright information 
</figcaption> 

可以(使用replaceWith ())

var $figcaption = '<span>Copyright information</span>'; 
$($figcaption).replaceWith('<figcaption>'+ $($figcaption).text()+'</figcaption>'); 

改變變量

var $figcaption = '<span>Copyright information</span>'; 
$figcaption = $figcaption.replace(/span/g , 'figcaption'); 

Demo here

+0

這是改變DOM的內容,而不是$ figcaption VAR裏面的內容。我想稍後將$ figcaption添加到另一個元素,但它並未從「」更改。我如何解決這個問題?我想要做這樣的事情:'$內容= $(本)。新增($ figcaption);' –

+0

@volumeone http://jsfiddle.net/mohamedyousef1980/b8m7vohy/可以幫助 –

0

您可以簡單地使用replace();考慮以下幾點:

var $figcaption = '<span>Copyright information</span>'; 
// Replace the opening and closing span tags 
$figcaption = $figcaption.replace("<span>", "<figcaption>").replace("</span>", "</figcaption>"); 
+0

無需使用單獨更換開並關閉標籤,可以使用單個替換 – vinayakj

+0

這也不起作用。它說類型錯誤$ figcaption.replace是不是一個功能 –

+0

@volumeone它爲我工作...你在做什麼不同? –

相關問題