2013-07-25 69 views
1

我想要做的是更改跨度的樣式屬性。我可以通過搜索一個類的子元素, ,但它沒有改變該元素的樣式。這裏是我的代碼:跨班風格按類搜索更改

$(".cmbdiaclase > span").each(function() 
    { 
     if($(this).attr("class") == "selectBox-label"){ 
      $(this).style.width = "70px"; //no change style a element 

     } 
    }); 

我希望你能幫助我,謝謝。

+4

改爲使用'$(this).hasClass('selectBox-label')'。 –

+0

使用'$(this).style.width(「70px」);'因爲這就是你如何使用這種方法..這裏定義http://api.jquery.com/width/ – abc123

+0

'$(「。cmbdiaclase > span.selectBox-label「)。width(70);'也一樣。 – vsr

回答

3
$(".cmbdiaclase > span").each(function() { 
    if($(this).hasClass('selectBox-label')){ 
     $(this).css('width', '70px'); 
    } 
}); 
3

這裏是另一種方式利用改進的選擇

$(".cmbdiaclase > span.selectBox-label").css("width", "70px"); 

做更多的jQuery的風格,但請記住,你不會看到任何改變CSS width財產,除非你<span>元件CSS display屬性設置爲blockinline-block

如果你想保留相同的代碼,那麼你可以改變你的原代碼中的一些東西。設置CSS樣式時,應使用.css()。當一類測試時,可以使用.hasClass(className)

$(".cmbdiaclase > span").each(function() 
{ 
    if($(this).hasClass("selectBox-label")) 
    { 
     $(this).css("width", "70px"); 

    } 
}); 
1
$(".cmbdiaclase > span").each(function() { 
     if($(this).hasClass('selectBox-label'){ 
      $(this).css('width', '70px'); 
     } 
}); 
1

在這裏,你的解決方案,你需要使用CSS()函數改變風格。

$(".cmbdiaclase > span").each(function() 
    { 
     if($(this).hasClass("selectBox-label")){ 
      $(this).css('width','70px'); //no change style a element 

     } 
    }); 
0

JS:

變化:

$(this).style.width = "70px"; //no change style a element 

要:

$(this).style.width("70px"); 

如jQuery的文檔FO定義řwidth

.WIDTH(值)

值 類型:String或Number 表示像素的數量,或者與測量所附的可選單元沿着一個整數(字符串)的整數。

正如其他人提到的,你也應該改變你的用法:

if($(this).attr("class") == "selectBox-label"){ 

要:

if($(this).hasClass('selectBox-label')){ 

如jQuery的文檔hasClass定義:

說明:確定是否有任何匹配的元素是簽署了給定的班級。
。hasClass(className)
className
類型:字符串
要搜索的類名稱。

0

你是差不多吧:

$(".cmbdiaclase > span").each(function() { 
    // use hasClass, instead of checking the attr("class"), this will only work if it has 1 class. 
    if($(this).hasClass('selectBox-label')){ 
     // This is wrapped in a jQuery $() which makes it a jQuery object 
     $(this).css('width', '70px'); 

     // Not wrapped in a jQuery $(), it stays the DOM object. 
     this.style.width = "70px"; 
    } 
}); 

所以這取決於你如何在上下文中使用它。你想要一個jQuery對象或一個DOM對象。