如何检查jQuery变量的文本是否包含特定文本?

时间:2010-09-25 22:33:45

标签: jquery html css

所以我在jquery变量中捕获了图像的ID,如下所示:

$("#tag img").click(function(e) {       
    var element = $(this).attr("id");

我如何解析var元素?

我想把它放在这样的if语句中:

if ( $(element *= 'square' ) {
    $('#tag #view_name').text("Tag with a Square");
}
elseif ($(element *= 'circle' ) {
    $('#tag #view_name').text("Tag with a Circle");
} 

如何以最少的代码执行此操作?

感谢。

编辑:哦,我正在搜索的文字是单引号中的两个字符串('square'和'circle')。

编辑:下面的所有答案看起来都应该正常工作......但事实并非如此。这是其他代码,所以你们可以看看我是否遗漏了一些东西:

<div id="tag">
        <a href=""><img src="images/square.png" id="square-tag"></a> | 
        <a href=""><img src="images/circle.png" id="circle-tag"></a> |      
        <span id="view_name">Tag with Square</span>
    </div>  

编辑3:好的......似乎其他一些jQuery正在劫持那个div。所有答案都是正确的。我希望我能将所有这些标记正确:)

3 个答案:

答案 0 :(得分:3)

从最小的代码角度来看,这可行:

$("#tag img").click(function() {  
  if (this.id.indexOf('square')>-1) {
    $('#view_name').text("Tag with a Square");
  } else if (this.id.indexOf('circle')>-1) {
    $('#view_name').text("Tag with a Circle");
  }
});

按ID选择时,只使用 ID,它也是一个更快的选择器。我是这样做的,因为你的问题的措辞如何,对于这个具体的例子,它有点干净:

$("#tag img[id*='square']").click(function() { 
  $('#view_name').text("Tag with a Square");
});
$("#tag img[id*='circle']").click(function() { 
  $('#view_name').text("Tag with a Circle");
});

答案 1 :(得分:2)

这类似于$("input[name*='man']")选择器(评论中的示例)

var name = $(this).attr("name");
if (name.indexOf('square') >= 0) {
    $('#tag #view_name').text("Tag with a Square");
}

答案 2 :(得分:1)

试试这个:

if (element.indexOf("square") != -1)
    $('#tag #view_name').text("Tag with a Square");
else if (element.indexOf("circle") != -1)
    $('#tag #view_name').text("Tag with a Circle");