一千萬個為什麽

搜索

Jquery屬性選擇器

我有一個變量(div元素),其中包含一些表html。

我可以使用這個JavaScript來添加一個類到每個有背景設置的單元格。

  var tds = tempDiv.getElementsByTagName("TD");
  for (var j = 0; j < tds.length; j++) {
    var oTd = tds[j];

    if (oTd.style.background.length > 0) {
      oTd.className = 'faketh';
      oTd.setAttribute('style', 'Clear');
    } //if
  }//for

我想要做的是在jQuery中做同樣的事情。下面是我想到的,第二行工作正常,但第一行不....

  $(tempDiv).find("td[style*='background:']").addClass("faketh");
  $(tempDiv).find("td").removeAttr('style');

任何幫助,將不勝感激。

編輯: 只需添加;我使用下面的代碼沒有問題。

  $(tempDiv).find("tr:odd").addClass('row0');
  $(tempDiv).find("tr:even").addClass("row1");

所以它不是類的添加多數民眾贊成在問題...問題是,我沒有找到任何匹配的元素。這是td元素之一;

<td valign="top" class="faketd" style="border: 1pt solid windowtext; padding: 0cm 5.4pt; background: silver none repeat scroll 0% 0%; width: 131.4pt; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">
        
VPN Name/Description:

</td>

最佳答案

我不認為你可以在jQuery中使用本地選擇器。 style屬性不是由瀏覽器作為字符串存儲的,它是一個對象。

It has been implemented, however: http://code.google.com/p/aost/wiki/CustomJQuerySelectorInTellurium#:styles

或者,您可以在這個中使用$ .each:

$("img").each(function() {
    if($(this).css('background').length > 0) {
        $(this).addClass('faketh');
    }

});

或者你可以使用jQuery過濾器:

var x = $("#tempDiv td").filter(function(i){
    return $(this).css("background").length > 0;
});

轉載註明原文: Jquery屬性選擇器