使用jquery选择特定的子元素?

时间:2012-07-25 11:45:59

标签: javascript jquery

我想从$ el.html中选择特定的子元素,有两种类型的子元素,一种是<span>....</span>,另一种是span类<span class = "special">..</span>,例如:

var orig = $(".example").html()
    ,$el = $(".example")
    ,text = $.trim($el.text())
    ,words = text.split(" ")
    ,html = "";

for (var i = 0; i < words.length; i++) {
    if (words[i] === "senior")
    html += "<span class='special'>" + words[i] + ((i+1) === words.length ? "" : " ") + "</span>";
    else
        html += "<span>" + words[i] + ((i+1) === words.length ? "" : " ") + "</span>";
   };
$el.html(html).children().hide().each(function(i){
 // if $('span.special')
  $(this).delay(i*200).fadeIn(700);
 // else (normal span)
  $(this).delay(i*600).fadeIn(900);
}).promise().done(function(){
       $('.example:first').html(orig)
    })

如何在“每次”调用中区分有和没有课程的跨度?

  

工作演示在这里:http://jsfiddle.net/6czap/15/

1 个答案:

答案 0 :(得分:3)

我相信你正在寻找.hasClass

$el.html(html).children().hide().each(function(i){
  if($(this).hasClass('special'))
      $(this).delay(i*200).fadeIn(700);
  else
      $(this).delay(i*600).fadeIn(900); 
}).promise().done(function(){
       $('.example:first').html(orig)
});

Demo

但是,如果您只想淡入.special元素,请使用

$el.html(html).children('.special').hide().each(function(i){
  if($(this).hasClass('special'))
      $(this).delay(i*200).fadeIn(700);
}).promise().done(function(){
       $('.example:first').html(orig)
});

(请参阅.childrendemo)。