我想检查显示是否等于none或表行。我目前正在使用这个:
的Javascript / JQuery的:
function changeDisplay(element){
var clickedLi = $(element).closest("li");
var pageList = $(".paginering li");
var trList = $(".tabelOpenstaand tbody tr.hoofdRij");
var trNumber = $(".tabelOpenstaand tbody tr.hoofdRij").length;
debugger;
for (var i = 0; i < trNumber; i++){
if (trList[i].css("display") == "table-row"){
trList[i].css("display", "none");
}
}
}
目前我收到错误:&#39; Uncaught TypeError:undefined不是函数&#39;在if行上。我该如何解决这个问题? trList填充了正确的元素。
答案 0 :(得分:2)
而是trList [i],尝试trList.eq(i)
它会变成
if (trList.eq(i).css("display") == "table-row"){
trList.eq(i).css("display", "none");
}
答案 1 :(得分:1)
有很多相关解决方法的答案,但没有人真正解释过这个失败的原因。
$('selector')
返回一个jQuery对象。该对象具有保存DOM元素的数字索引。
这意味着$('selector')[0]
返回一个DOM元素,而不是jQuery对象,因此没有.css()
方法。
答案 2 :(得分:0)
trList
不是一个数组,它是一个对象。因此trList[i]
无效。
你必须做一个foreach。
trList.each(function(){
if($(this).css("display") == "table-row"){
$(this).css("display", "none");
}
});
答案 3 :(得分:0)
当我走一个物体时,我经常写这样的代码:
function changeDisplay( element ){
// var clickedLi = $(element).closest("li");
// var pageList = $(".paginering li");
// var trList = $(".tabelOpenstaand tbody tr.hoofdRij");
// var trNumber = $(".tabelOpenstaand tbody tr.hoofdRij").length;
var trList = document.querySelectorAll( ".tabelOpenstaand tbody tr.hoofdRij" );
for ( var i in trList ){
if( !i.match( /\D/ ) continue;
if( trList[i].css("display") == "table-row" ){
trList[i].css( "display", "none" );
}
}
}
&#34; String.match()&#34;当我走进一个物体时很有用。我更喜欢使用&#34;(var ... in ...)&#34;句法。只是个人的观点。