2010-09-25 133 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

相關問題