Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 匹配jQuery中的精确字符串_Javascript_Jquery - Fatal编程技术网

Javascript 匹配jQuery中的精确字符串

Javascript 匹配jQuery中的精确字符串,javascript,jquery,Javascript,Jquery,我有两段: <p>Some text</p> <p>Another text</p> 仅当存在文本右侧文本时,它才应显示警报。但是当你加载页面时,它每次都会显示出来。脚本的第二部分应该在段落中添加下划线,加上右文本,并且它可以工作-如果它包含右文本,它就有下划线 为什么我的代码不工作,尽管选择器是相同的?如果有正确的文本,如何显示警报 这是因为JQuery对象将被转换为条件的布尔值。 如果不匹配,它将是长度为0的JQuery对象,但仍将转换为tr

我有两段:

<p>Some text</p>
<p>Another text</p>
仅当存在文本<代码>右侧文本时,它才应显示警报。但是当你加载页面时,它每次都会显示出来。脚本的第二部分应该在段落中添加下划线,加上
右文本
,并且它可以工作-如果它包含
右文本
,它就有下划线

为什么我的代码不工作,尽管选择器是相同的?如果有正确的文本,如何显示警报


这是因为JQuery对象将被转换为条件的布尔值。 如果不匹配,它将是长度为
0
的JQuery对象,但仍将转换为
true
。只有当它是
0、-0、null、false、NaN、未定义时,才能将其转换为false

请尝试以下方法:

if ( $("p:contains('Right text')").length ) {
  alert("Matching!");
}

这是因为JQuery对象将被转换为条件的布尔值。 如果不匹配,它将是长度为
0
的JQuery对象,但仍将转换为
true
。只有当它是
0、-0、null、false、NaN、未定义时,才能将其转换为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" );
注意:如果有
右文本等等
它也会有下划线,因为它包含
右文本
。如果要检查完整内容,请执行以下操作

$( "p" ).each(function() {
    if ( $( this ).html() == "Right text" ) {
        alert( "Matching" );
        $( this ).css( "text-decoration", "underline" );
    }
});
$(“p:contains('Right text'))
始终返回数组。此数组已定义,因此如果尝试将其转换为布尔值,则始终会得到
true
。检查数组的长度-它应该大于0

右代码:

if ( $("p:contains('Right text')").length > 0 ) {
  alert("Matching!");
};


$( "p:contains('Right text')" ).css( "text-decoration", "underline" );
注意:如果有
右文本等等
它也会有下划线,因为它包含
右文本
。如果要检查完整内容,请执行以下操作

$( "p" ).each(function() {
    if ( $( this ).html() == "Right text" ) {
        alert( "Matching" );
        $( this ).css( "text-decoration", "underline" );
    }
});

尝试使用a for each,然后获取每个标记p的字符串文本,并使用indexOf查找要匹配的字符串的位置如果找到该字符串,则位置为all's>-1,否则如果不匹配,则为-1

$('p').each(function(){
    if( $(this).text().indexOf('code example') > -1){
        console.log($(this).text());
    }
});

尝试使用a for each,然后获取每个标记p的字符串文本,并使用indexOf查找要匹配的字符串的位置如果找到该字符串,则位置为all's>-1,否则如果不匹配,则为-1

$('p').each(function(){
    if( $(this).text().indexOf('code example') > -1){
        console.log($(this).text());
    }
});

您需要检查
length
,因为即使是空对象在javascript
$中也是真实值('nonexistant')
是长度为零的jQuery对象,但仍然是一个对象,因此仍然传递原始
,如果
您需要检查
length
,因为即使是空对象在javascript
$('nonexistant')
是一个长度为零的jQuery对象,但仍然是一个对象,因此如果
忘记了文本,则仍然会传递原始的
,在测试永不少于-1的thx时,该文本必须复制了以前版本的代码。您的答案有点不清楚(无论如何,我将保持+1)。执行步骤,例如:1.诸如此类。2.诸如此类。3.诸如此类。不要将文本粘在一起。忘记让文本在测试永不少于thx的-1时复制了以前版本的代码。您的答案有点不清楚(无论如何,我将保持+1)做一些步骤,例如1.诸如此类2.诸如此类3.诸如此类不要把课文粘在一起。