this:after selector jQuery
this:after selector jQuery
$('.email').each(function(l,i){
var that = $(this);
var thatOtherOne = $(this:after);
$('<a>').attr('href', 'mailto: '+ that.html + thatOtherOne.css('content')).insertAfter(that);
that.hide();
});
.email:after {
content: "@mydomain.com";
}
<span class="email">info</span>
你好,再次堆栈溢出!
这是我对付垃圾邮件的方法。使用 CSS :after
选择器,content
我尝试在<span>
中填写我的自定义电子邮件,CSS 会添加 URL。这并不能使它可点击,所以这就是为什么我使用 JS/jQuery 尝试上述方法的原因。
遗憾的是,这不起作用,因为$(this:after);
不是有效的选择器。我该如何更改此设置?
你根本无法构造这样的选择器;它真的没有语法意义。选择器用于搜索 DOM。 要执行您要执行的操作,您可以尝试在"内容"中使用attr()
技巧:
.email:after {
content: attr(data-domain);
}
然后在您的标记中:
<a class=email data-domain='@whatever.com'>info</a>
然后你的 JavaScript 可以做到这一点:
$('.email').each(function(l,i){
var that = $(this);
var domain = that.data('domain');
$('<a>').prop('href', 'mailto: ' + that.text() + domain).insertAfter(that);
that.hide();
});
这个想法是将代码实际需要使用的内容保留在单独的属性中,然后在 CSS 规则中使用 attr()
运算符(或任何您想要调用它的内容(来获取该属性值并将其用作内容。如果需要,运算符可以与字符串组合。克里斯·科耶尔(Chris Coyier(有一篇很好的博客文章。
相关文章:
- jquery selector on some element
- JQuery Selector未选择任何内容
- .click() 使用 document.getElementById,但不使用 jquery selector
- 为什么 jQuery $('#selector').width(1) 应用 17px 而不是 1px
- 复选框的jQuery Selector
- jQuery Selector获取UNKNOWN DEPTH下的(第n个)元素
- Jquery Selector性能建议
- jQuery Selector equivalent of javascript
- Jquery selector input[type=text]')
- jQuery $(selector) 中的“this”.each 函数都引用页面
- jQuery Selector - <i class>
- 利用jQuery Selector来简化HTML解析器代码
- jquery selector for "#id_article-DYNAMIC_NUMBER-media_d
- jQuery-selector在另一个选择器传递的变量中丢失其值并成为索引器
- 检索列表`<li>`具有Jquery Selector:ID的标记以某种格式开头
- 如何在此web应用程序中使用jQuery Selector
- jquery$(selector).ready()代码即使没有匹配的元素也会运行
- jQuery Selector:选择一个框,但不选择框内的元素
- jQuery Selector规范不一致
- Jquery (“.selector li:last-child”) vs (“.selector > li:la