2010-09-25 88 views
1

所以我拍摄的图像的ID在一个jQuery变量,像这样:如何检查jQuery变量的文本是否包含特定的文本?

$("#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被劫持该专区。所有的答案都是对的。我希望我可以标记所有这些正确的:)

+1

'* ='是什么意思? – 2010-09-25 22:35:59

+0

“JQuery变量的文本”究竟是什么? – 2010-09-25 22:36:46

+0

基本上,我希望它表示'如果变量包含该字符串'。如果我从选择器中检查属性str8,我可以这样做......就像这样:'$(“input [name * ='man']”)。val(“man in it!”);'So我试图弄清楚如何在选择器语句之外完成该操作。但它不是这样工作的。 – marcamillion 2010-09-25 22:37:56

回答

2

这类似于$("input[name*='man']")选择(例如,从您的评论)

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

酷!你有一个URL可以解释这个吗? – marcamillion 2010-09-25 22:45:54

+0

这不起作用。 – marcamillion 2010-09-25 22:49:59

+0

@marcamillion这里的示例:http://jsfiddle.net/DGY5x/ – 2010-09-25 22:58:26

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"); 
+0

这也行不通。 – marcamillion 2010-09-25 22:50:38

+0

你一定是做错了,因为我们已经发布的这些方法不应该因任何原因失败。 – 2010-09-25 23:05:06

+0

现在有效......我的坏处。还有另外一个JS劫持了这个ID。 – marcamillion 2010-09-25 23:19:54

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"); 
}); 
+0

看起来它应该工作....但它不符合我的代码 - 出于某种原因。为了进行故障排除,我用更多的HTML更新了原始问题。 – marcamillion 2010-09-25 23:03:07

+0

@marcamillion - 这里有一个代码演示,注意添加'HREF'所以页面不重定向:http://jsfiddle.net/nick_craver/efEBd/ – 2010-09-25 23:04:55

+0

谢谢尼克。得到它了。愚蠢的我...别的东西是劫持该div的点击(功能()):| – marcamillion 2010-09-25 23:07:24

相关问题