字符串包含
在我的Intranet页面上,我有以.doc或.xls结尾的链接。字符串包含
如何使用jQuery来检查,如果他们.xls结束,所以我可以加少许的JavaScript这些链接
编辑:
这不起作用:
$("a.resultLink").live('click', function(event)
{
// do something here
// ...
// change .doc link behaviour
var anchor = $("a:contains('.doc')");
if (anchor){
event.preventDefault();
alert("this is a doc");
}
// do something else here
// ...
});
使用Attribute Ends With Selector [name$=value]
。例如,对类excel_link
添加到所有链接到与.xls
结尾的文件,你可以这样做:
$("a[href$='.xls']").addClass("excel_link");
如果你已经有元素,那么你只是想这样做:
$("a.resultLink").live('click', function(event)
{
// do something here
// ...
// change .doc link behaviour
var anchor = $(this);
if (anchor.attr("href").match(/\.doc$/){
event.preventDefault();
alert("this is a doc");
}
// do something else here
// ...
});
如果它在文本中可以使用CSS定位器包含。该文件是在http://api.jquery.com/contains-selector/
var anchor = $("a:contains('.xls')");
if (anchor){
anchor.addClass("myNewClass"); // Change this to what every jQuery command that you want
}
,如果你有许多这样的那么
$("a:contains('.xls')").each(function(index){
$(this).addClass("myNewClass");
});
我需要改变这种锚定标签的行为,所以我如何使用这个if语句即if($(“a:contains('.xls')”)){//用xls文件做一些不同的事情} – oshirowanen 2010-10-06 11:00:47
我试过以下,它会影响所有的链接,而不是只有.doc链接... var anchor = $(“a:contains('。doc')”); if(anchor){event_preventDefault(); 警报(“这是一个文档”); } – oshirowanen 2010-10-06 11:17:47
在原始问题中增加了当前脚本 – oshirowanen 2010-10-06 11:24:07
标准JavaScript(正则表达式)可以做到这一点:
if(str.match(/\.doc$/)) {dosomething();}
其中str是文件名检查
在原始问题中增加了当前脚本 – oshirowanen 2010-10-06 11:24:30
如何在if语句中使用它?如果$(“a [href $ ='。xls']”){//做些不同的事情} – oshirowanen 2010-10-06 10:58:57
@oshirowanen:你从没有充分利用jQuery表现力的问题推断出来。你可以有一个函数doSomethingDifferent(),它对与模式匹配的所有选择器做一些不同的事情。你不需要一个条件分支。不要遍历你的链接;而是要弄清楚条件或案例,然后依次处理它们作为集合。 – Tim 2010-10-06 11:04:32
我如何利用jQuery的表现力? – oshirowanen 2010-10-06 11:05:54