2012-07-01 40 views
0

当我做控制台日志以下是HTML结构,即印刷:jQuery的动态变化

<div class="ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" data-id="21"> 
      <div class="ui-widget-header ui-corner-all"> 
      <span class="ui-icon ui-icon-minusthick"></span> 
      <h6>First Person</h6> 
      </div> 
      <p class="style-content"></p> 
      <p class="style-content">Estimated Missing: 10</p> 
      <p class="style-content"> 
      <span class="sub_task">6</span> 
      People Found 
      </p> 
     </div> 

我想,如果给定的变量alpha = "12"

截至目前附加类delta添加到<span class="sub_task">6</span>我的js文件看起来是这样的:

console.log(elem) 
elem = $(this).children()[3]; 
if (alpha=="12"){ 
elem.addClass("delta"); 
} 

但是这给出了一个错误:

Uncaught TypeError: Object #<HTMLParagraphElement> has no method 'addClass' 

我有两个问题:

一个更好的选择,以获得元素。

我该如何添加类?

回答

4

使用$jQuery,因为addClass是jQuery的的功能:

$(elem).addClass("delta"); 

或者

jQuery(elem).addClass("delta"); 

而且改变:

elem = $(this).children()[3]; 

要:

elem = $(this).children().eq(2).find('span'); // note index starts at 0 in eq 

或者你也可以直接添加类像这样(假设你有相同的HTML结构)

if (alpha == "12") { 
    $('.style-content').find('span').addClass("delta"); 
} 
+0

虽然这是真的,addClass是一个jQuery函数,问题不在于选择器,而在于OP使用.children并选择元素的方式。 – Joey

+0

@Joey:谢谢,更新了 – Blaster

+0

请注意,当elem用.children正确定义时,elem.addClass()也可以正常工作。 – Joey

1

在一个片断这两个答案:

$(this).children().eq(3).addClass('delta'); 
+0

他想有条件地添加课程 – Blaster

+1

@Blaster - 我只是修复了这一行。这符合他的条件。 –