我不明白这里的意思。这为第5行提供了一个错误“未定义不是函数”。我想为每个具有“.mp3”但没有“.php”的链接添加一个类。
jQuery(document).ready(function(){
jQuery('a[href$=".mp3"]')
.each(function()
{
if (this.toString().indexOf(".php")<0) { $(this).addClass('sm2_button');}
});
var btn = jQuery('<span class="btn-pressplay"> </span>');
jQuery('.sm2_button').prepend(btn)
});
编辑: 我还尝试了以下@ user3659034。我得到的错误是类型错误:undefined不是一个函数 console.log生成“一个#page-top”,所以看起来我正在尝试评估我需要排除的页面上的奇怪a。我从here获得了类型代码。
jQuery(document).ready(function(){
//edit NEB
//jQuery('a[href$=".mp3"]').addClass('sm2_button');
jQuery("a").each(function(idx) {
console.log (this);
var attr = $(this).attr('href');
if (typeof attr !== typeof undefined && attr !== false) {
if (jQuery(this).attr('href').indexOf(".mp3") > -1) {
if (jQuery(this).attr('href').indexOf(".php") == -1) {
jQuery(this).addClass('sm2_button');
}
}
}
});
var btn = jQuery('<span class="btn-pressplay"> </span>');
jQuery('.sm2_button').prepend(btn)
});
这是为pressplay-lite wordpress插件限制更改下载而不是mp3的mp3链接。
答案 0 :(得分:0)
对锚标记jQuery .each()
使用a
并获取href attribute's
值,然后检查其中是否存在.php或.mp3。
$("a").each(function(idx) {
if ($(this).attr('href').indexOf(".mp3") > -1) {
$(this).addClass('sm2_button');
}
});
答案 1 :(得分:0)
您需要做的是使用属性选择器来说明href以.mp3
(attribute ends with selector - $ =)结尾的选择元素,但忽略href属性中具有.php
的项目( attribute contains selector - * =)喜欢
jQuery('a[href$=".mp3"]').not('[href*=".php"]').addClass('sm2_button');