jQuery if target.text()==,做点什么

时间:2014-07-30 07:44:39

标签: jquery

我有一个小功能的问题,我只是想让它在点击时切换文字,但是有一点问题,这个文字可能有点动态。 为了更清楚,我将展示文本的两个状态:

  1. “展开所有18”
  2. “全部隐藏”
  3. 正如您在第一个示例中看到的那样,有一个数值,可能是动态的。 我认为正则表达式有点太重,无法在这里理解和使用,所以jQuery可以通过以下构造查看文本:

    if(e.text() == 'Expand*'){//do something}
    

    或者这是不可能的,我需要使用正则表达式吗?

    JSFiddle:http://jsfiddle.net/akn2g/

2 个答案:

答案 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.
}