jQuery多属性选择器,不工作:/

时间:2011-10-27 02:39:04

标签: javascript jquery html selector

据我所知,我正在关注http://api.jquery.com/multiple-attribute-selector/上的正确使用形式,但无论出于何种原因我都没有看到,我的代码无效。每个属性彼此独立地工作(即 $(".tonight_stat_peopleThumbs li[srcid="+srcid+"]")有效且$(".tonight_stat_peopleThumbs li[style*=inline-block]")有效,但它们无法协同工作。

以下是我在JavaScript中的功能:

hidePatrons = function(srcid) {
    $(".tonight_stat_peopleThumbs li[srcid="+srcid+"][style*=inline-block]").each(function(){
        $(this).css({"display" : "none"});
    });
}

以下是HTML中的一篇文章:

<ul activepage="1" class="tonight_stat_peopleThumbs" style="width:171px">
  <li id="myid" class="myclass" ptype="people" ptime="11101101" style="display:inline-block;">
    <a href="http://domain.com/users/#.php">
      <img src="https://graph.facebook.com/#/picture" />
    </a>
  </li>
</ul>

NOTE: The '#' are inserted for privacy, assume they are fbid numbers.

4 个答案:

答案 0 :(得分:5)

请注意,虽然CSS allows attribute selectors without quotes,但每个jQuery example都有引号。我的经验是,如果没有引号,jQuery就无法可靠地选择。

/* Good for CSS, bad for jQuery */
[foo=bar]

/* Good for both */
[foo="bar"]

答案 1 :(得分:1)

尝试

$('.tonight_stat_peopleThumbs li[srcid="' + srcid + '"][style*="inline-block"]')
  • 介意引用!

答案 2 :(得分:0)

尝试将li[srcid="+srcid+"]更改为li[id="+srcid+"]我没有看到“srcid”属性,因此我假设您要搜索“id”属性

答案 3 :(得分:0)

你可以这样试试吗?对于我的HTML代码,以下内容正常。

 hidePatrons = function(srcid) {
        $("#tonight_stat_peopleThumbs li[ptype=people][style*=inline-block]").each(function(){
            $(this).css({"display" : "none"});
        });
    }

注意用于ID,用于课程。我将更改为,将 srcid =“+ srcid +”更改为代码中的 ptype = people