我有一张桌子,我试图找到表格中每个td的宽度。我尝试了$("td")[0].width()
的各种变体,但没有一个变得有效,每次都会收到错误:"Uncaught TypeError: $(...)[0].width is not a function"
。
我首先导入jQuery,然后导入其他JS文件(https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js),并且我使用.width()而不是.width。
有什么想法吗?
答案 0 :(得分:5)
$("td")[0]
是一个DOM元素,而不是一个jquery对象。只需将其包装为jquery $($("td")[0]).width()
您需要获得每个td
的宽度,以便您可以使用类似
$.each('td', function() {
var currentTDWidth = $(this).width(); // more code here
});
答案 1 :(得分:2)
当你说我试图找到表格中每个td的宽度时,你需要使用.each()
循环tds ..
$('td').each(function(){
alert($(this).width());
});
并选择具体的td还有更多方法
使用:eq()
选择器
$('td:eq(0)'); // index start from 0
jquery中的或.eq()
$('td').eq(0) // index start from 0
或:nth-child()
选择器
$('td:nth-child(1)'); // index start from 1
答案 2 :(得分:1)
使用eq(0)代替[0]来保留具有width()函数的jQuery对象。
答案 3 :(得分:1)
$("td")[0]
是DOM Level元素而不是jQuery对象。并且.width()
是一个jQuery方法,所以你实际上不能在它上面使用它。 执行以下任一操作:
$("td").eq(0).width(); // On a jQuery object
$("td")[0].offsetWidth; // On a DOM Level Element.
要获取所有元素的宽度,请使用.each
$('td').each(function(){
alert($(this).width());
});