我有一个小功能的问题,我只是想让它在点击时切换文字,但是有一点问题,这个文字可能有点动态。 为了更清楚,我将展示文本的两个状态:
正如您在第一个示例中看到的那样,有一个数值,可能是动态的。 我认为正则表达式有点太重,无法在这里理解和使用,所以jQuery可以通过以下构造查看文本:
if(e.text() == 'Expand*'){//do something}
或者这是不可能的,我需要使用正则表达式吗?
JSFiddle:http://jsfiddle.net/akn2g/
答案 0 :(得分:2)
var txt = $(this).text();
if(txt.indexOf('Expand') == 0){
//do something
}
完整代码:
$('.texted').on('click',function(){
console.log('clicked');
if($(this).text().indexOf('Expand') == 0){
$(this).text('Hide all');
return 0;
}
if($(this).text().indexOf('Hide') == 0){
$(this).text('Expand all');
return 0;
}
});
更新fiddle
答案 1 :(得分:1)
如果你决定使用正则表达式,你会这样做:
if (/Expand/.test(e.text())){
e.text('Hide all');
}
else {
e.text('Expand all ' + numItems); // numItems being the length og the list children.
}