2013-01-06 30 views
1

可能重複:
Find text string in jQuery and make it bold如何使用jQuery:包含(某些文本)選擇器,但僅從「這是一些文本」中選擇「某些文本」?

如何使用jQuery的:包含(一些文本)選擇,但只有選擇 「一些文本」,從 「這是一些文本」?

我有這樣的事情:

<div class="search">this is some text</div> 

我目前使用這樣的代碼:

$("div.search:contains(some text)").css("text-decoration","underline"); 

但是,強調「這是一些文本」,我希望它只是強調「一些文本」。

我該如何做到最簡單?

+1

NOP,不能做這種方式,需要一些正則表達式魔術至少,檢查出http://stackoverflow.com/questions/9794851/find-text-string-in-jquery-and -make-it-bold/9795091#9795091 – elclanrs

+0

您正在將css應用於div - 不是文本,因此行爲是正確的。你可以拆分'.html()'並用它想要的樣式包裝一個''。 – Nic

回答

0

你可以拆開類似jQuery高亮插件的東西來找到它們是如何做到的。或者你可以直接使用插件,只需修改應用的css類來包含你的下劃線而不是黃色的背景色。

不一定回答這個問題,但如果你想要的是功能而不是學習......不要重新發明輪子。

http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html

+0

這完全是我所需要的。點擊另一個單詞後,我需要第二個單詞突出顯示,並且需要第一個單詞保持突出顯示。 – webmagnets

+0

只是不要調用removeHighlight(),你可以根據需要突出顯示許多不同的單詞。 – BZink

2

你必須使用正則表達式與它自己的元素來包裝內的文字:

$('div.search:contains(some text)').html(function (i, v) { 
    return v.replace('some text', '<span>some text</span>'); 
}) 
.find('span').css('text-decoration', 'underline'); 

使用此僅當有內div.search沒有嵌套元素。如果有,那麼這是一個完全不同的球賽。

相關問題