2013-01-10 18 views
0

我使用第三方工具,它生成的div數如下。Jquery獲取具有特定模式的所有DIV並將其添加到其中

<div style="height:auto;" class="datagrid-cell datagrid-cell-c1-F1246"></div> 
<div style="height:auto;" class="datagrid-cell datagrid-cell-c1-F1247">1</div> 
<div style="height:auto;" class="datagrid-cell datagrid-cell-c1-F1248"></div> 
<div style="height:auto;" class="datagrid-cell datagrid-cell-c1-F1249">1</div> 

我喜歡用jQuery來發現所有的分度類=「數據網格單元數據網格細胞-XX-XXXX」,並在div = 1的內容更改CSS背景顏色。

注意:XX-XXX可以是任何不固定長度的數字。

我試過單細胞但不改變背景顏色。

$('div').find('datagrid-cell datagrid-cell-c1-F1249').css('background-color', 'red'); 

我該如何做到這一點?任何人都可以幫忙

+0

難道你不使用'數據網格,cell'類,而不是'數據網格細胞-XX-XXXX'? –

+0

,因爲它是由第三方工具自動生成的。所以我無法控制它 – tsohtan

回答

0

你可以試試這個:

$('.parent').find('div[class^="datagrid-cell datagrid-cell-"]:contains(1)').css('background', 'red'); 

$('div[class^="datagrid-cell datagrid-cell-"]:contains(1)').css('background','red'); 
+0

是的。這是改變顏色,但我需要改變所有具有類名稱的背景顏色,如這個模式class =「datagrid-cell datagrid-cell-XX-XXX」,它包含文本= 1 – tsohtan

+0

剛剛更新了答案 – Jai

+0

很酷!工作!/謝謝。 – tsohtan

1

您需要通配符選擇器starts with。您可以閱讀超過here

$('[class^=datagrid-cell datagrid-cell:contains(1)]').css('background-color', 'red'); 
+0

降票的原因? – Adil

+0

這不是我,但我想這是因爲OP需要選擇類的元素*和*也有文本='1' –

+0

謝謝@RoryMcCrossan,你真好。 – Adil

0

更多選擇它不是一個階層,而是一組兩類,這應該這樣做:

$('div').find('.datagrid-cell.datagrid-cell-c1-F1249').css('background-color', 'red'); 
+0

'注:XX-XXX可以是任何不固定長度的數字。' –

+0

@RoryMcCrossan對不起,我錯了,你的解決方案應該這樣做。 –

3

試試這個:

$('[class^=datagrid-cell datagrid-cell]:contains("1")').css('background-color', 'red'); 

或者如果您只能使用所有單元上的datagrid-cell類,則可以簡化爲:

$('.datagrid-cell:contains("1")').css('background-color', 'red'); 
+0

它不工作。背景顏色不變 – tsohtan

0

試試這個:

$('div.datagrid-cell:contains('1')').css('background-color', 'red'); 

這將選擇具有類「數據網格細胞」,包含值「1」的所有div元素。您的元素包含兩個類「datagrid-cell」並自動生成「datagrid-cell-XX-XXXXX」。

+0

除了一行代碼之外,請添加更多的body到你的問題中,包含選擇器的描述應該足夠了,但是也要注意,OP已經提到'datagrid-cell'的類是自動生成的。 – Hailwood

相關問題