2017-09-21 24 views
-1

我用這個語句試圖擺脫TD數組中的元素:如何通過它的類名

$("td", calendar).getElementsByClassName("today") 

,但我一直得到錯誤getElementsByClassName方法不是一個函數。

$("td", calendar) 

給出「td」的數組。是否有可能只使用一行訪問「today」「td」,或者需要某種迭代?

+0

'document.getElementsByClassName(「today」)'nothing more。 – Doomenik

+1

發佈您的HTML。 –

+1

也許'$(「td」,calendar).filter(「。today」)' –

回答

2

jQuery是DOM元素的包裝,並有其自己的幫助函數。

要過濾元素的集合,使用.filter像這樣:

$('td', calendar).filter('.today'); 

如果你只打算使用td s的的today類,那麼最好是改變你的選擇:

$('td.today', calendar); 

你可以通過內置的JS函數來實現這個,就像這樣

const tdCollection = document.querySelectorAll('td.today'); 
 
console.log(tdCollection);
<table> 
 
    <tr> 
 
    <td>yesterday</td> 
 
    <td class="today">today</td> 
 
    <td>tomorrow</td> 
 
    </tr> 
 
</table>

+0

我用你的第一個建議,它返回一個數組,所以我只是添加了一個[0],它被修復了,謝謝。你知道哪種方法更快嗎? –

+0

最後一個沒有jQuery。 jQuery本身只是一個包裝器,它當然依賴於內置的JS函數。我不會推薦使用jQuery,除非你真的需要支持IE的老版本 - 但據我所知,jQuery不會支持舊版本。時下幾乎所有的事情都可以在沒有jQuery的情況下輕鬆完成。 – lumio

0

您正在使用jQuery混合香草的JavaScript。

的Javascript

var x = document.getElementsByClassName("today") 

這個返回與此類名的所有元素的數組

jQuery的

var x = $('.today'); 

與jQuery選擇一個元素時,你需要在前面加上「 #「用於ID和A」。「上課

運氣好,玩得開心學習JavaScript :)

[編輯]對不起,我顯然在這裏讀了真正的問題。在你的具體情況下,你最好採用類似於@lumio在他的回答中提出的解決方案。

+1

我只能想象得到了downvoted(不是我),因爲它沒有回答問題中的具體情況。也許添加一行,「在你的情況下,這意味着使用...」 –