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){