6

我正在为用于加载选项的选择元素存储以下数据属性。

<select name="DependsOn_Field" data-load='automatic' data-source='web.module().fields' data-value='name' data-display='label' data-filter='exclude_single' id='DependantField'></select>

我的问题是当需要为单个 DOM 元素存储许多数据属性时,最好的方法是什么?具有 JSON 数据的单个数据属性还是为所需的每个值具有单独的数据属性更好。

4

2 回答 2

2

我认为问题归结为数据属性是静态的吗?他们可能会改变吗?如果它们要更改或者您可能想要编辑它们,那么 JSON 肯定会更好。但是,如果它们是静态的并且您只是要读取这些属性,我认为 data 属性很好,这正是 data 属性的用途。我知道这看起来很麻烦,因为你有很多属性,但我认为这很好。

通过更改或编辑进行编辑,我的意思是在客户端浏览器中动态编辑它们

希望这可以帮助。

于 2013-06-04T06:09:22.067 回答
1

这完全取决于它们的使用方式。

data-如果您的值是简单的字符串并且您正在从 JavaScript 访问它们,那么将它们保存在属性中可能是有意义的。

如果您的值是复杂的 JSON 对象,那么将完整的 JSON 值存储在属性中并定义一个读取它的帮助器可能更有意义data-(为简单起见,假设 jQuery 可用):

function getElemData(elem) {
    var $elem = $(elem);
    var elemData = $elem.data("_jsonData");
    if (!elemData) {
        elemData = JSON.parse($elem.attr("data-json-data"));
        $elem.data("_jsonData", elemData);
    }
    return elemData;
}

data-最后,如果数据只是被传递(例如,由服务器写入,然后直接在其他地方读取和发送),将整个 blob 保存在单个属性中很可能是有意义的。

于 2013-06-04T06:12:35.957 回答