2015-06-08 36 views
1

有人可以幫助我與syntax使用jQuerythis關鍵字嗎?在jQuery選擇器中使用this關鍵字

這裏是我的代碼工作:

var obj = jQuery.parseJSON(data); 

$('.example_infobox1').addClass(obj.gridlayout); 
$('.example_infobox1 .info-box').addClass(obj.boxcolor);  
$('.example_infobox1 .info-box-icon').addClass(obj.iconcolor); 
$('.example_infobox1 i').addClass(obj.icon); 
$('.example_infobox1 .info-box-text').html(obj.text); 
$('.example_infobox1 .info-box-number').html(obj.number); 

這裏是我的工作代碼:

var obj = jQuery.parseJSON(data); 

$('.example_infobox1') 
{ 
    $(this).addClass(obj.gridlayout); 
    $('.info-box', this).addClass(obj.boxcolor);  
    $('.info-box-icon', this).addClass(obj.iconcolor); 
    $('i', this).addClass(obj.icon); 
    $('.info-box-text', this).html(obj.text); 
    $('.info-box-number', this).html(obj.number); 
} 

我沒有收到在控制檯中的任何錯誤,但是HTML內容格式不正確。

謝謝

+0

請發佈我的HTML以及 – Alex

+0

我建議你看看[jQuery的'.find()'](https://api.jquery.com/find/)。如果您只想在子樹中進行選擇器搜索,那麼這就是您想要的。這個''不涉及這種類型的活動。 – jfriend00

回答

1

我覺得在這種情況下變量會更好。

var box = $('.example_infobox1'); 

box.addClass(obj.gridlayout); 
$('.info-box', box).addClass(obj.boxcolor);  
$('.info-box-icon', box).addClass(obj.iconcolor); 
$('i', box).addClass(obj.icon); 
$('.info-box-text', box).html(obj.text); 
$('.info-box-number', box).html(obj.number); 
0

其實,這是jQuery選擇器的錯誤用法。

jQuery將當前文檔對象分配給此「選擇器」中的this

http://jsfiddle.net/8rLdwr5w/1/
看看這個例子。這裏的jQuery對象包含整個文檔,我可以使用find方法訪問外部div

如果你想讓jQuery選擇被調用一次然後重用,請按照Stuart Wagner的方法。

0

這指向jquery中的當前對象,它只有在語法錯誤時纔會出錯。 你應該試試這個。 (this).find('。info-box')。addClass(obj.boxcolor); $(this).find('。info-box')。addClass(obj.boxcolor); 或 $('。example_infobox1> div [class =「.info-box」]')。addClass(obj.boxcolor);

$( 「example_infobox1。 」)。兒童(「 信息框」)。addClass( 「obj.boxcolor」)。