亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過其內容的完全匹配選擇元素

通過其內容的完全匹配選擇元素

月關寶盒 2019-07-27 09:12:39
通過其內容的完全匹配選擇元素好吧,我想知道是否有辦法讓:contains()jQuery的選擇器選擇只有輸入字符串的元素例如 -<p>hello</p><p>hello world</p>$('p:contains("hello")').css('font-weight', 'bold');選擇器將選擇兩個p元素并使它們變為粗體,但我希望它只選擇第一個元素。
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

嘗試添加一個extend偽函數:

$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().match("^" + arg + "$");
    };});

然后你可以這樣做:

$('p:textEquals("Hello World")');


查看完整回答
反對 回復 2019-07-27
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

所以Amandu的回答大多有效。然而,在野外使用它時,我遇到了一些問題,那些我希望找到的東西都沒有找到。這是因為有時元素的文本周圍會有隨機的空白區域。我相信,如果你正在尋找“Hello World”,你仍然希望它能夠匹配“Hello World”,甚至是“Hello World \ n”。因此,我剛剛將“trim()”方法添加到函數中,該函數刪除了周圍的空白,并且它開始更好地工作。

特別...

$.expr[':'].textEquals = function(el, i, m) {
    var searchText = m[3];
    var match = $(el).text().trim().match("^" + searchText + "$")
    return match && match.length > 0;}

另外,請注意,此答案與按文本選擇鏈接非常相似 (完全匹配)

次要注釋... trim僅刪除搜索文本之前和之后的空格。它不會刪除單詞中間的空格。我相信這是理想的行為,但如果你愿意,你可以改變它。


查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關注
  • 509 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號