如何使用 jQuery 找到具有电子邮件地址作为类名的元素?

Posted

技术标签:

【中文标题】如何使用 jQuery 找到具有电子邮件地址作为类名的元素?【英文标题】:How can I find element having an email address as class name using jQuery? 【发布时间】:2017-02-15 02:53:30 【问题描述】:

如何找到以电子邮件地址作为类名的元素。 电子邮件地址是动态的。

$(document).ready(function()
  //not working getting error
  var email="abc@gmail.com";
  $("#main").find("."+email);
  //not working
  $("#main").find("."+escapeSelecorchars(email));
);

function escapeSelecorchars = function(val) 
  return val.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`|~]/g,"\\\\$&");
;
<div id="main">
  <div class="abc@gmail.com"></div>
</div>

【问题讨论】:

使用 data-attr() 而不是将电子邮件值放入类 但是如何找到元素你能举个例子 但是那个东西只是识别元素的唯一东西 "但是如何找到元素你可以举个例子" 带有一个属性选择器。 api.jquery.com/attribute-equals-selector @pareshm 检查这个demo 【参考方案1】:

我会尝试这样的事情

Js:

$(function() 
  var email = "abc@gmail.com";
  var div = $("#main").find("div[data-email='"+email+"']");
);

html

<div id="main">
  <div data-email="abc@gmail.com"></div>
</div>

这是一个工作的 plunker https://plnkr.co/edit/BDo9SvksNIfCLa6I0HfI

【讨论】:

【参考方案2】:

试试

$('#main div').filter(function() return $(this).attr('class') == 'abc@gmail.com');

$('div').filter(function() return $(this).attr('class') == 'abc@gmail.com');

【讨论】:

【参考方案3】:

由于特殊字符很难找到元素。

查看此代码

$(document).ready(function()
  //not working getting error
var ele = $("#main").find("div[data-email='abc@gmail.com']");
 
 
	console.log($(ele).attr('data-email'))

  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="main">
  <div data-email="abc@gmail.com" class="email"></div>
</div>

【讨论】:

我只想找到一个 div 并且不能使用每个循环【参考方案4】:

使用Attribute Equals Selector [class="value"”]

console.log($('#main > div[class="abc@gmail.com"]').length);

$(document).ready(function()
  console.log($('#main > div[class="abc@gmail.com"]').length);
  
  $("#main").find("div[class='abc@gmail.com']").html("Appended");
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main">
     <div class="abc@gmail.com"></div>
</div>

【讨论】:

动态变化是什么意思? 你的意思是你在变量中接收电子邮件?【参考方案5】:

我同意将电子邮件地址用作班级可能不是最好的主意。但是,您的转义方法不起作用的唯一原因是您转义不正确。您的替换值中有太多 \

应该是

function escapeSelecorchars(val) 
  return val.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`|~]/g,"\\$&");
;

然后是it works。

【讨论】:

以上是关于如何使用 jQuery 找到具有电子邮件地址作为类名的元素?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 验证电子邮件地址 [重复]

如何使用 JQuery 加密电子邮件地址

jQuery 表单验证,仅允许 .EDU 电子邮件地址

jQuery 验证插件:如何创建自己的消息

如何在 Jquery / Datatables 中打印 [关闭]

如何使用相同的电子邮件地址创建一个新的 GitHub 帐户?