2014-11-05 91 views
1

我想要使用jQuery和.search()函数循环浏览页面上的所有锚定标记,并且如果它具有特定的url,请添加一个data-reveal属性基金会5模式。代码完成它应该做的事情,但它会抛出一个错误。这个错误是让脚本在它下面被调用。任何了解此事,将不胜感激jQuery .search()抛出一个错误

做这件事时我得到一个错误,指出:遗漏的类型错误:无法读取属性未定义

这里“搜索”是我使用的脚本:

<script> 
    $(document).ready(function(){ 
    $('a').each(function(){ 
     var currLink = $(this).attr('href').search(/oamedia.html/i); 
     if (currLink != -1) { 
     $(this).attr('data-reveal-id', 'videoModal') 
     $(this).attr('href', '#'); 
     }; 
    }); 
    }); 
</script> 
+0

你在'$获得(这).attr( 'href' 属性)'? – Avinash 2014-11-05 19:15:11

回答

2

问题是如果该属性不存在,attr返回undefined。您需要一个空字符串'',而不是undefined。幸运的是,jQuery的prop功能正是这么做的href属性:

var currLink = $(this).prop('href').search(/oamedia.html/i); 
+0

这工作就像一个魅力。你是一个救星!谢谢! – 2014-11-05 19:22:31