2011-11-04 108 views
0

当我的变量anchor包含单词'image'时,我想运行'action one'。如果它不包含指定的文本,否则它将运行第二个动作。jquery:包含选择器

var clickedImage = $('.header ul li').find('img[rel="clicked"]').closest('li'); 

if ($(clickedImage).find('a:contains("image")')) { 

     //action one 

    } else { 

     //action two 

    } 

我在哪里错了?

+0

什么是'clickedImage'?我们在这里需要更多的上下文... – Neal

+0

添加变量 –

+0

创建一个小提琴,它适用于我(safari 5):[见这里](http://jsfiddle.net/mAu888/6ZsSH/)。如果html与您的不匹配,请分叉并提供您的小提琴。 – mAu

回答

0

检查集合的长度:

if ($(clickedImage).find('a:contains("image")').length) { 

.find()返回一个jQuery对象。要检查选择器是否匹配任何内容,请检查length属性是否不等于零。

+0

我理解你的逻辑,但是这不起作用。我敢肯定即将做的事是错误的。 var count = $(clickedImage).find(“a”)。find('href:contains(“Walk”)')。length;'THEN'if($(count).length!= 0){' –

+0

'.find()'接受一个字符串(选择器)作为参数。省略jQuery包装:'var clickedImage = $('。header ul li')。find('img [rel =“clicked”]')。closest('li')'。 –

+0

ok这部分是一个错误,所以不应该在那里,但':contains'部分仍然不起作用。感谢您一直以来的帮助! –