2014-03-05 61 views
1

我有一些通過我正在使用的插件通過即時創建的元素,並且我想給某個div一個類,如果它是唯一的div。問題添加一個類到一個動態創建的元素

如果我寫的條件,提醒,如果有一個元素,它的工作原理(警報顯示出來),但如果我嘗試將類分配給它,它不會被分配:

警報代碼(作品)

if ($('#carousel > div').length == 1) { 
    alert('code'); 
} 

類代碼(不工作)

if ($('#carousel > div').length == 1) { 
    $(this).addClass('code'); 
} 

回答

2

this是你認爲它是。一個if塊不改變執行上下文(this) - 的if塊將仍然指代相同的對象,因爲它是指在if塊之外內部this,所以thisif塊內可以不參照div

if ($('#carousel > div').length == 1) { 
    $('#carousel > div').addClass('code'); 
} 
+0

This works。爲什麼'$(this)'不起作用?我不明白。 – BlekStena

+0

@BlekStena它歸結爲什麼'this'指的是 –

3

在您的上下文$(this)不指向所需的必需元素。

嘗試,

var cache = $('#carousel > div'); 
if (cache.length == 1) { 
    cache.addClass('code'); 
} 
1

因爲jQuery可以處理「空」對象,所以if是無用的。所以,你真正需要的是:

$('#carousel > div').addClass('code');

如果$('#carousel > div').length0,什麼都不會發生。

相關問題