过滤器无法正常运行,只需要其子项与选择器匹配的标签

时间:2010-04-20 17:26:27

标签: jquery-selectors

给出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);

我已经尝试了所有这些来获得这艘船,所以我可以从那里下来获得这个号码。

$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长度。

http://jsbin.com/alebi3/9/edit

有一个调试bin / live示例

1 个答案:

答案 0 :(得分:1)

听起来你想要jQuery.has()。这样的东西应该会得到包含div <div class="number">x10</div>的div:

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

N.B。您不需要在选择器中的属性值中插入引号。