在jQuery中匹配精确的字符串
Matching the exact string in jQuery
我有两段话:
<p>Some text</p>
<p>Another text</p>
和这个jQuery代码:
if ( $("p:contains('Right text')") ) {
alert("Matching!");
};
$( "p:contains('Right text')" ).css( "text-decoration", "underline" );
它应该显示一个警报,只有当有文本Right text
。但是当您加载页面时,它每次都显示。脚本的第二部分应该添加下划线到段落与Right text
和它的工作-如果它包含Right text
,它有下划线
为什么我的代码不工作,虽然选择器是相同的?如果有正确的文本,我如何显示警告?
http://codepen.io/anon/pen/mEvOWA?编辑= 1010
这是因为JQuery对象将为条件转换为布尔值。如果不匹配,它将是length:0
的JQuery对象,但仍然转换为true
。只有当它是0, -0, null, false, NaN, undefined
时才会被转换为false
试试这个:
if ( $("p:contains('Right text')").length ) {
alert("Matching!");
}
$("p:contains('Right text')")
总是返回一个数组。这个数组是定义好的,所以如果你尝试将它转换为布尔值,你总是得到true
。检查数组的长度-它应该大于0。
正确的代码:
if ( $("p:contains('Right text')").length > 0 ) {
alert("Matching!");
};
$( "p:contains('Right text')" ).css( "text-decoration", "underline" );
注意:如果有Right text blah blah
,它也会有下划线,因为它包含Right text
。如果你想查看完整的内容
$( "p" ).each(function() {
if ( $( this ).html() == "Right text" ) {
alert( "Matching" );
$( this ).css( "text-decoration", "underline" );
}
});
尝试使用for-each,然后获得每个标签p的字符串文本,并使用indexOf找到你想要匹配的字符串的位置,如果找到字符串的位置是all's> -1,否则它将是-1,如果它不是一个匹配
$('p').each(function(){
if( $(this).text().indexOf('code example') > -1){
console.log($(this).text());
}
});
相关文章:
- 字符串Jquery结构中的变量
- 在字符串 jquery 中添加空格
- 如何在字符串 jQuery 上调用函数
- 将 .val() 转换为字符串 jQuery
- 如何放置 PHP 字符串 jQuery 验证错误消息
- 查找字符串 jQuery/Javascript 的部分
- 从字符串 jQuery 中删除字符串
- 比较明显相等的字符串 JQuery
- 在字符串中使用 PHP 作为字符串.(JQuery)
- 比较两个字符串(jquery .text() 和文字字符串)
- 替换<a>如果它以字符串JQuery结尾
- 字符串jQuery剩余的空白数量
- 重新注册字符串jquery.Ui可拖动
- 字符串替换为另一个字符串jquery/javascript
- 如果子值与某个字符串JQuery匹配,则隐藏父元素
- 单击时从输入中删除字符串?jQuery
- 如何获取特定子字符串jquery之后的字符串
- 不能识别父-字符串JQuery中的子字符串
- 翻译KeyDown键码字符串(jQuery)
- 即使我没有引号来转义,它仍然说我有一个未闭字符串(Jquery)