2010-04-20 49 views
0
给出的HTML

匹配:过滤器不能正常工作,只需要其子标签选择

<div class="ships"> 
    <div class="ship header"> 
    </div> 
    <div class="ship"> 
    <div class="image"> 
     <img alt="Hermes_class" src="..." /> 
    </div> 
    <div class="number">x10</div> 
    </div> 
... //other ships 

我只想要船舶配套IMG ALT =“Hermes_class”的数量文本。

这里就是我开始:

var finalShipListDom = $jq('div.ship:not(.header)', finalCombatantShips); 
      if(finalShipListDom.length<=0) 
       console.log("fsld="+finalShipListDom.length); 

我已经尝试了所有这些让船上的DOM,所以我可以从那里下来取数。

$jq('div.ship',finalShipListDom).filter('div.image img[alt="' +shipClass + '"]'); 

var finalShipDomFilter= function(index){ 
       return jQuery('div.image',this).length>=1; 
      } 

 var finalShipDomFilter= function(index){ 
       return jQuery('div div.image',this).length>=1; 
      } 

所有正在返回0的长度。

像你想jQuery.has()有在http://jsbin.com/alebi3/9/edit

回答

1

调试斌/现场可用的例子听起来很熟悉。像这样的东西应该让你包含DIV <div class="number">x10</div>股利:

$jq('div.ship:not(.header)', finalCombatantShips) 
    .has('div.number > img[alt=' + shipClass + ']'); 

注:您不需要将引号插入到选择器中的属性值中。

+0

阅读'.has()'的描述,这听起来像我正在寻找,即将尝试它。 – Maslow 2010-04-20 18:48:50

+0

+1它的工作原理!谢谢 – Maslow 2010-04-20 18:56:16

+0

没问题!乐于帮助。 – 2010-04-20 18:57:58