Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Jquery 在与字符串匹配的每个元素中获取正确的元素_Jquery_This_Each_Element - Fatal编程技术网

Jquery 在与字符串匹配的每个元素中获取正确的元素

Jquery 在与字符串匹配的每个元素中获取正确的元素,jquery,this,each,element,Jquery,This,Each,Element,我想使用.each()循环DOM元素,并找到一个具有相同.text()作为变量的特定元素。如果正确的元素是最后一个同级元素,则会出现问题 例如: <p> wrong </p> <p> wrong </p> <p> right </p> 我很确定这就是你想要的 // We care that it exists or not var already_exists = false; // Iterate through the

我想使用
.each()
循环DOM元素,并找到一个具有相同
.text()
作为变量的特定元素。如果正确的元素是最后一个同级元素,则会出现问题

例如:

<p> wrong </p>
<p> wrong </p>
<p> right </p>

我很确定这就是你想要的

// We care that it exists or not
var already_exists = false;
// Iterate through the existing elements
$('p').each(function() {
    // If it exists, store that and break the loop because we don't need to check any more
    if ($(this).text() == "right") {
        already_exists = true;
        return false;
    }
});

// If, after checking (possibly) all elements, it exists, shout, else create it
if (already_exists){
   alert("this exists already");
}else{
   // A p will be created with text right
}


未经检查,我不确定
右侧的
.text()
是否匹配“
右侧的
”,因为存在空白。你可能想修剪一下<代码>如果($.trim($(this.text())==“right”)

我很确定这就是你想要的

// We care that it exists or not
var already_exists = false;
// Iterate through the existing elements
$('p').each(function() {
    // If it exists, store that and break the loop because we don't need to check any more
    if ($(this).text() == "right") {
        already_exists = true;
        return false;
    }
});

// If, after checking (possibly) all elements, it exists, shout, else create it
if (already_exists){
   alert("this exists already");
}else{
   // A p will be created with text right
}


未经检查,我不确定
右侧的
.text()
是否匹配“
右侧的
”,因为存在空白。你可能想修剪一下
如果($.trim($(this.text())==“right”)

文本空间中的问题在前后出现,请按如下方式修剪文本

if ($.trim($(this).text())== "right") {}

前后文本空间中的问题,请按如下方式修剪文本

if ($.trim($(this).text())== "right") {}
可以使用
filter()
进行此操作,您需要删除空白,否则您的匹配将无法根据问题中显示的内容进行

var myVar = 'right';

var exists = $('p').filter(function() {
  return $(this).text().trim() === myVar;
}).length;// length of collection will determine if filter has matches

if(!exists){
   // add element
}
可以使用
filter()
进行此操作,您需要删除空白,否则您的匹配将无法根据问题中显示的内容进行

var myVar = 'right';

var exists = $('p').filter(function() {
  return $(this).text().trim() === myVar;
}).length;// length of collection will determine if filter has matches

if(!exists){
   // add element
}

你根本不需要循环

只需使用选择器

//如果至少有一个right

元素,请提醒用户 if($('p:contains(“right”)).length){ 警报(“该警报已存在”); }否则{ //将使用文本权限创建一个p }


您根本不需要循环

只需使用选择器

//如果至少有一个right

元素,请提醒用户 if($('p:contains(“right”)).length){ 警报(“该警报已存在”); }否则{ //将使用文本权限创建一个p }


我不知道问题是什么或你的问题我不明白你的问题。请以更好的方式解释它。基本上我想迭代元素,如果有一个元素中有文本“right”,循环应该停止并提醒用户。它不应该执行else条件,因为我们有一个元素的text()right@popla面你能给我看一个代码示例吗?我不知道是什么问题或你的问题我不明白你的问题。请以更好的方式解释它。基本上我想迭代元素,如果有一个元素中有文本“right”,循环应该停止并提醒用户。它不应该执行else条件,因为我们有一个text()right@popla面的元素,你能给我看一下和代码示例吗?注意
:contains
和绝对匹配不一样thing@charlietfl没错。但归根结底,OP想要如何实现这一点。如果“正确”是由他控制的(没有用户输入),那么您的解决方案解决了他的问题,否则我的解决方案会更合适。这最有意义我正在检查的文本都在变量中。那么,如果我有一个变量而不是“right”@saman93,假设您的变量是
value
,然后使用连接:
if($('p:contains(“+value+”)))。length),那么这将如何工作呢{
注意
:contains
和绝对匹配不一样thing@charlietfl没错。但这一切都归结于OP想要如何实现这一点。如果“正确”由他控制(无需用户输入),然后您的解决方案解决了他的问题,否则我的解决方案会更合适。这最有意义我正在检查的文本都在一个变量中。那么,如果我有一个变量而不是“right”@saman93假设您的变量是
value
,那么使用串联:
if($('p:contains(“+value+”)。length){