Javascript 从数据属性设置jQuery插件选项

Javascript 从数据属性设置jQuery插件选项,javascript,jquery,Javascript,Jquery,在使用数据属性的jQuery插件中将选项设置为数组值时,我遇到了一个问题 如果我使用类选择器引用数据属性 $('.tm-input').tagsManager( { prefilled: $('.tm-input').data('load') }) 它可以工作,但所有元素都得到相同的值。 如果我使用它引用,它会设置正确的值,但它会显示为字符串而不是数组 $('.tm-input').tagsManager( { prefilled: $(this

在使用数据属性的jQuery插件中将选项设置为数组值时,我遇到了一个问题

如果我使用类选择器引用数据属性

  $('.tm-input').tagsManager(
    {
    prefilled: $('.tm-input').data('load')
    })
它可以工作,但所有元素都得到相同的值。 如果我使用它引用,它会设置正确的值,但它会显示为字符串而不是数组

  $('.tm-input').tagsManager(
    {
    prefilled: $(this).data('load')
    })
我尝试使用JSON.parse,但遇到了一个关于意外字符的错误。任何帮助都将不胜感激

每种都试过了吗

$('.tm-input').each (function () {
    $(this).tagsManager( { prefilled: $(this).data('load') });
});
说明:

当选择器有多个元素时,对其应用方法通常会影响所有元素,但检索属性通常只会从第一个元素返回该属性

因此,当您在“.tm输入”选择器上使用.tagsManager时,您将.tagsManger应用于所有元素。但是,当您设置prefilled:$'.tm input'.data'load'时,data方法每次仅从列表中的第一个元素获取数据

当您使用each时,它会将每个块内部的逻辑分别应用于每个元素,而不是一次应用于所有元素,所以当您使用$this.data“load”时,它也会从每个单独的元素中获取load属性。

您试过每个元素吗

$('.tm-input').each (function () {
    $(this).tagsManager( { prefilled: $(this).data('load') });
});
说明:

当选择器有多个元素时,对其应用方法通常会影响所有元素,但检索属性通常只会从第一个元素返回该属性

因此,当您在“.tm输入”选择器上使用.tagsManager时,您将.tagsManger应用于所有元素。但是,当您设置prefilled:$'.tm input'.data'load'时,data方法每次仅从列表中的第一个元素获取数据


当您使用each时,它会将每个块内部的逻辑分别应用于每个元素,而不是一次应用于所有元素,所以当您使用$this.data“load”时,它也会从每个单独的元素中获取load属性。

显示数据属性中出现的字符串。问题很可能是因为数据中的某个地方存在非法字符,导致JSON无效。请发布html代码并显示数据属性中出现的字符串。这个问题很可能是因为数据中的某个地方存在非法字符,导致JSON无效。请发布html代码alsoBINGO!我很想理解为什么这样做有效,但我不会与成功争辩!谢谢你@SteveO7我在答案中添加了一个解释。因此,当添加需要像这样的元素特定选项的方法时,循环使用每个选项更精确。这是有道理的。宾果!我很想理解为什么这样做有效,但我不会与成功争辩!谢谢你@SteveO7我在答案中添加了一个解释。因此,当添加需要像这样的元素特定选项的方法时,循环使用每个选项更精确。这是有道理的。