2013-10-09 113 views
1

我需要刪除嵌套<b></b>標籤。看到生成的CSS,你就會明白這個問題:在JavaScript/jQuery中連接字符串?

<div class="highlight" contenteditable="true"> 
    ahuasdhuasdhuasdhu 
    <b> 
     <b>#</b> 
     huadshuashud 
    </b> 
</div> 

我想刪除有標籤「#裏面,但我不希望刪除‘#’。 (請注意hashtag可以是任何其他值)。對於這一點,我寫了下面的代碼:

// Highlight already been declared and just is a simple $('.highlight'). 
highlight.children('b').children('b').contents().unwrap(); 

現在我有以下代碼:

<div class="highlight" contenteditable="true"> 
    ahuasdhuasdhuasdhu 
    <b> 
     "#" 
     "huadshuashud" 
    </b> 
</div> 

我想加盟此兩個字符串,因爲當我雙擊它,它只是選擇「#」或「huadshuashud」,但我希望標籤內的所有內容都被選中。

有一些方法來改進我的方法或連接這兩個字符串?

+0

所以我認爲''「'是從字面上在HTML? –

+0

是的,他們字面上是在HTML:/ – Paladini

+1

*「因爲當我雙擊它,它只是選擇」#「」*啊,所以*實際*問題。無論如何,默認行爲是以這種方式選擇。試試通過選擇這個文本:「#abc123」。您需要創建* extra * JS來查找這些點擊選擇並「修復」瀏覽器特定的行爲。不好玩。 – Hamish

回答

1

嘗試:

$('.highlight > b').html(function(){ 
    return $(this).text(); 
}); 

,這將給你這樣的:

<b> 
    # 
    huadshuashud 
</b> 
+0

你是個好人,你的答案給我「#heuehueheu」,但我不知道,當我雙擊它時,我只是選擇了「#」或「heuehueheu」。這是一個瀏覽器問題? – Paladini

+1

就是這樣,嘗試任何其他符號,並且dbl-click將只選擇單詞字符,這不是問題。嘗試使用dbl單擊此字符串「#asdasdasd」。 – elclanrs

1

Selecting text in an element (akin to highlighting with your mouse)

這裏有一個現成的功能。編輯開始能夠傳遞一個對象而不是id並添加一個處理程序:

$(".highlight").ondblclick(function(){ 
    SelectText(this) 
}) 

function SelectText(elementObject) { 
    // here choose function you like and replace text variable 
    text = elementObject; 
    ...