2017-03-09 7 views
2
$.extend($.expr[':'], { 
'containsi': function(elem, i, match, array) 
{ 
return (elem.textContent || elem.innerText || '').toLowerCase() 
.indexOf((match[3] || "").toLowerCase()) >= 0; 
} 
}); 
window.setInterval(function() { 
$("div[class^='chat-box-content'] div[class^='message'] span:containsi(Dexter)").css("background","greenyellow"); 
},1000); 

これは、Dexterという単語を含むメッセージを強調する現在の方法です。しかし、チャットでは、敏捷性と言われることもあります。私は "Dexter"という言葉の出現を強調する方法を探していますjQueryにはより長い単語が含まれています

メッセージには他の内容が含まれている場合があります。たとえば、メッセージは次のとおりです。 デクスター:実際には、デクスター

テキストファンクションを使用して一致しない単語が実際に含まれています。

+0

メッセージの一部と一致するように求めていますか?セレクタを使用して単語を選択することはできません。完全な要素のみを選択することはできません。 –

+0

私は現在、Dexterを含む各メッセージを強調表示しています。しかし、非常に頻繁に人々は迷惑についてのメッセージを送信します。私は彼らの中にデクスターを持っているメッセージだけが必要です。 –

+0

その場合、要素を取得して特定のテキストを確認する必要があります。私の答えを更新しました。 –

答えて

1

テキスト

span:containsi(Dexter) 

の厳しい試合が

span:text(Dexter) 

を更新する必要がありますしたい場合:あなたは、フィルタを使用する必要があり、その場合には

..

var matchedElem= $("div[class^='chat-box-content'] div[class^='message'] span:containsi(Dexter)").filter(function() { 
    return $(this).text() === 'Dexter'; 
}); 

matchedElem.css("background","greenyellow"); 
+0

メッセージには他のコンテンツが含まれている可能性があります。たとえば、ここにメッセージがあります。 デクスター:実際には、デクスター 実際にはマッチしないという単語が含まれています。 –

+0

更新私の答え –

+0

これは動作していないようです。 Dexterという単語が含まれているメッセージだけが表示されますが、他に何かが含まれている場合は表示されません。 –

関連する問題