24
我需要根據jQuery中的文本來選擇一個元素。jQuery基於文本選擇
例如:
<span>this text</span>
我知道我可以使用。載有()來選擇基於文本,但它不是唯一的。
我不想選擇:
<span>this text and that text</span>
我要選擇的元素,如果它是元素的純文本。
除了使用正則表達式,我該如何做到這一點與jQuery選擇器?
謝謝。
我需要根據jQuery中的文本來選擇一個元素。jQuery基於文本選擇
例如:
<span>this text</span>
我知道我可以使用。載有()來選擇基於文本,但它不是唯一的。
我不想選擇:
<span>this text and that text</span>
我要選擇的元素,如果它是元素的純文本。
除了使用正則表達式,我該如何做到這一點與jQuery選擇器?
謝謝。
你對包含選擇器有一些影響力,但只有這樣才行。你將需要進一步裁減元素集合的基礎上確切的文本匹配,如:
$("span:contains(this text)")
.filter
(
function()
{
return $(this).text() === "this text";
}
)
這使得最初包含使用在技術上是不必要的,但你可以用更小的集合開始了體驗的性能優勢SPAN元素過濾下來的確切集之前你有興趣
編輯:拿了肯布朗寧的建議,使用text()
函數而不是innerHTML
爲filter
函數中的字符串比較。我們的想法是,innerHTML
將捕捉我們並不特別感興趣的文本(包括標記)。
好的答案,但爲什麼使用'innerHTML'而不是'$(this).text()'?不會使用'innerHTML'要求他考慮標準包含必須編碼的字符的情況(例如& - > &) – 2009-09-16 00:37:05
對於挑剔,我給了你+1和推薦的答案! – 2009-09-16 00:42:56
@DavidAndres而不是'innerHTML',你也可以使用'innerText',它比'.text()'快,並且不會包含標記。 – hitautodestruct 2013-07-28 13:52:59