2017-10-13 57 views
0

我正試圖用jquery替換@ span標籤內的span。但是br並沒有插入,只要我插入任何其他正確顯示結果的文本。
我不明白爲什麼br標籤不工作,這裏是我的html代碼的一個例子。用jquery在span標記中插入break

<span class="event-date-start">Oct 14 @ 1:00 pm</span> 

這裏是我的jQuery

jQuery('.event-date-start').each(function(){ 
    jQuery(this).html(function(_, curr){ 
    return curr.replace('@', '<br />'); 
    }); 
}); 

我也試圖與html的,但結果是一樣的。我沒有對HTML的任何控制,並且想要動態地插入換行符。 我需要一點指導才能完成此任務。

+0

粘貼你的「jQuery的」到測試小提琴完美工作:https://jsfiddle.net/0xfus8zh/ –

回答

1

text()不會插入html。使用html()方法,而不是

jQuery(this).html(jQuery(this).text().replace('@', '<br />')); 

或者作爲html(function)

jQuery(this).html(function(_, curr){ 
    return curr.replace('@', '<br />'); 
}); 
+0

非常感謝你的幫助。正如我在我的問題中提到的,我已經嘗試過.html這不適合我。現在我會嘗試第二種方法。 – Awan

+0

應該正常工作。提供[mcve] – charlietfl

+0

仍然不適合我。我將更新我的問題,爲您提供更多細節。我已經在不同的瀏覽器中嘗試過了。 – Awan

0

下面是一個原生的JavaScript解決您的問題。你可以很容易地把它翻譯成jQuery。

var eventDateElements = document.getElementsByClassName('event-date-start'); 
 

 

 
function replaceWithBreak(element, stringToReplace) { 
 
    var updatedText = element.innerHTML.replace('@', '<br />'); 
 
    element.innerHTML = updatedText; 
 
} 
 

 

 
replaceWithBreak(eventDateElements[0]);
<span class="event-date-start">Oct 14 @ 1:00 pm</span>

1

您需要獲得元素的文本,找到每個「@」,並使用替代,然後返回html

退房解決方案的內容:http://jsfiddle.net/juTtG/7/

HTML

<span class="event-date-start">Oct 14 @ 1:00 pm</span> 

jQuery的

$(document).ready(function() { 
    var $eventDateStart = $(".event-date-start"); 
    var content = $eventDateStart.text().replace('@','<br>'); 
    $eventDateStart.html(content); 
});