Javascript 根据数据属性确定网格大小

Javascript 根据数据属性确定网格大小,javascript,jquery,html,Javascript,Jquery,Html,在我的代码中,我从HTML中提取了一个名为grid size的数据属性。当网格大小被拉过时,我想写一个语句,说明如果值是“大的”,那么x和y的共同组织是。。。如果这个值很小,那么x和y坐标是。。。我已经试过了,但无法使它工作。有人能告诉我哪里出了问题吗 下面是从HTML中提取它的语句 $('li[data-number-input],li[data-completion-number]').each(function(){ numberInput.push($(this).att

在我的代码中,我从HTML中提取了一个名为grid size的数据属性。当网格大小被拉过时,我想写一个语句,说明如果值是“大的”,那么x和y的共同组织是。。。如果这个值很小,那么x和y坐标是。。。我已经试过了,但无法使它工作。有人能告诉我哪里出了问题吗

下面是从HTML中提取它的语句

    $('li[data-number-input],li[data-completion-number]').each(function(){
    numberInput.push($(this).attr('data-number-input'));
    completionNumber.push($(this).attr('data-completion-number'));
    gridSize.push($(this).attr('data-grid-size'));
});
这是我写的声明

if ($(this).data('grid-size') == "large") {
    gridColumns = 4;
    gridRows = 4;
}
else {
   gridColumns = 6;
   gridRows = 8;
}
这是html

<li data-number-input="6" data-completion-number="1" data-grid-rows="8" data-grid-columns="6" data-grid-size="large"></li>  

  • 您的代码中存在语法错误,对于
    推送方法,您遗漏了一个
    ,我不确定您为什么在if语句中使用推送方法,您可以使用
    数据
    方法:

    if ($(this).data('grid-size') === "large") {
       // ...
    } else {
       // ...
    }
    

    if(gridSize.push($(this.attr('data-grid-size')==“large”){
    是什么意思?它没有任何意义,而且还有语法错误。如果html中的值是large@undefinedOk,那么现在它每次都直接转到else语句。它无法识别“large”@undefinedTrue您的确实有效。可能是gridColumns=8;gridRows=6;部分吗@undefined@IronSpoon不,这不会影响if语句,您确定要使用此代码吗?@IronSpoon在您的小提琴中没有
  • 元素,提示:
    数据
    只返回第一个匹配元素的数据,您应该根据需要使用
    每个
    或其他方法。在
      的底部有。我取出了数据网格rows=“8”data grid columns=“6”,因为在未定义时没有使用它