jQuery:为什么我的contains()不区分大小写?

时间:2018-07-23 00:28:54

标签: javascript jquery

我正在尝试在代码中使用contains()函数,并且我希望它区分大小写,这应该是正确的,但事实并非如此。 是否输入

$("keyword:contains('{Keyword:')") 

$("keyword:contains('{KeyWord:')") 

它仍然有效。我究竟做错了什么? 这是我的JsFiddle:https://jsfiddle.net/xpvt214o/463834/

谢谢

2 个答案:

答案 0 :(得分:2)

$("keyword:contains('{Keyword:')").length条件下,您需要检查$("keyword:contains('{Keyword:')")而不是if()

var keyword = '';
var elm = $("#message > p:contains('{Keyword:')");
if (elm.length) {
  keyword = elm.text().replace(/({Keyword:)/gi, "");
  keyword = keyword.replace(/}/gi, "");
  $("#message > p").text(keyword);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message">
  <p>{Keyword:This is a headline}</p>
</div>

答案 1 :(得分:0)

if ($("keyword:contains('{Keyword:')")){ ... }与任何条件都不匹配,只是返回一个非假值,因此它会触发所有事件(var keyword = $("#message > p").text();的目标是任意元素。

:contains选择器应用于定位特定元素。

$("div.message > p:contains('{KeyWord:')").text(
  $("div.message > p:contains('{KeyWord:')").text().replace(/{keyword:/gi, "").replace(/}/gi, "")
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="message">
  <p>{KeyWord:This is a headline}</p>
</div>



<div class="message">
  <p>{Keyword:This is a headline}</p>
</div>