2014-04-30 52 views
0

刪除文字,我想從這個HTML代碼中刪除 「或」:jQuery的:從HTML

<div> 
    <a href="https://store-b2aus7wd.mybigcommerce.com/account.php">Account</a> 
    <a href='https://store-b2aus7wd.mybigcommerce.com/login.php' onclick=''>Sign in</a> 
or 
    <a href='https://store-b2aus7wd.mybigcommerce.com/login.php?action=create_account' onclick=''>Create an account</a> 
</div> 

使用此代碼:

$("div").html().replace(/\or/g,""); 

但它不會做任何事情。

+0

如果其中一個URL包含文本「或」它在某個地方會發生什麼? – j08691

+0

'\ o'是不必要的,甚至可能會導致錯誤。 – Scimonster

回答

2

而是使用HTML作爲一個字符串的工作,它可能是更好地與DOM的工作要做到這一點的對象:

$('div').contents().filter(function() { 
    return this.nodeType == 3 && $.trim(this.textContent) == 'or'; 
}).remove(); 

這裏有一個小提琴:http://jsfiddle.net/Lm4pC/。它看起來像.remove()對間距有一個奇怪的影響。使用.replaceWith('\n').replaceWith(' ')取而代之可能會更好地工作,具體取決於您的具體情況:http://jsfiddle.net/kdYQP/

2

$("div").html()以字符串形式返回div的當前html。然後你操縱。作爲一個字符串。您需要將其分配回來:

$("div").html($("div").html().replace(/\or/g,"")); 

這就是說,你確定你想這樣做與正則表達式?如果字符「或」出現在其中一個網址中,它們也會被刪除。

+0

謝謝。有沒有更好的辦法? –

+0

取決於你想做什麼?刪除確切的文字?或刪除所有不是鏈接?或者是什麼? – Adam

+0

也許修正正則表達式需要空格。 '/ \ sor \ s /',並刪除全局標誌。 – Scimonster

1

萬一張貼這一點,你可以刪除所有文本(截至目前這是一個有點不清楚)和不喜歡使用正則表達式語句:

$("div").html($("div a")); 

這將改變div的HTML只包含a元素,從本質上刪除HTML中的所有文本。在這種情況下,唯一的文字是or

Example

+0

中所描述的那樣將它分配給我(或$('div')。html($ ('div')。children())'),但問題是你鬆開了鏈接之間的空白。 – Adam