将元素属性用作chrome的javascript中的属性

时间:2018-08-15 16:07:28

标签: javascript jquery html

我有一个定义标签是否可见的函数,但是会发生一些奇怪的事情。如果我在Internet Explorer中使用它,则它可以正常工作,但是在chrome中,我会遇到很多错误,我已经尝试过用workarround来模拟逻辑,但是并不能得到相同的结果。

var attrs = new Array();
if (isChrome) {


    if (!GUIElm.getAttribute("filteredby")) {

        GUIElm.setAttribute("filteredby", new Array());
    }
    attrs.slice(columnIdx,1);
    $(GUIElm).prop('disabled', true);
    if (filterObj.filters(value)) {
        attrs.push(columnIdx);
        GUIElm.setAttribute("filteredby", attrs)
    }

    GUIElm.style.display = (attrs.length == 0) ? "" : "none";
}
else { //Internet explorer
    if (typeof (GUIElm.filteredby) == "undefined") {
        GUIElm.setAttribute("filteredby", new Array());
    }
     GUIElm.filteredby.remove(columnIdx); // accessing the attribute as an object property
    if (filterObj.filters(value)) {

        GUIElm.filteredby.push(columnIdx);
    }
    GUIElm.style.display = (GUIElm.filteredby.length == 0) ? "" : "none";
}

谢谢。

1 个答案:

答案 0 :(得分:0)

我使用了$ .data(),它具有想要的行为。

  $(GUIElm).data('filteredby', []);
  $(GUIElm).data('flag', 30292);                 
  $(GUIElm).data('filteredby').slice(columnIdx);