【问题标题】:Rel attribute in jQueryjQuery中的Rel属性
【发布时间】:2011-09-19 18:44:36
【问题描述】:

我想创建需要呈现如下代码的动态 html:

<a rel="{gallery: 'gal', smallimage: 'a',largeimage: 'b'}" href="javascript:void(0);"><img src="x1.jpg"></a>

我在 jQuery 中编写了以下代码以实现上述目标:

for(i=1; i<=4; i++){
    var rela="{gallery:'gal', smallimage:'a', largeimage: 'b'}";
    html += "<a href='javascript:void(0);' rel='"+rela+"' ><img src='x"+i+".jpg' /></a>";
}

但是当它执行时,它呈现如下:

<a 'b'}'="" largeimage:="" smallimage:'a',="" gal',="" rel="{gallery:" href="javascript:void(0);"><img src="x1" class="img1"></a>

【问题讨论】:

  • 除了您使用单引号来表示属性值这一直接问题之外,主要问题是您将伪 JSON 放入 rel 属性中,即... 错误的。你到底想用这个来完成什么?
  • 我正在尝试使用 jQZoom 插件并尝试遵循 jqzoom 示例文件中给出的模式...请使用此 url 来查看我想用上面的代码做什么mind-projects.it/projects/jqzoom

标签: javascript jquery html rel


【解决方案1】:

使用属性在对象上存储数据并不是您自己发现的一个聪明的想法,它不像您希望的那样工作。尤其是json。

在您的情况下,您正在尝试存储 json?或者在 html 中包含 qoutes 的对象,但是浏览器会将它遇到的第一个 qoute 视为 rel 属性的闭包.. 搞砸了大事。

将不同的属性存储在单独的数据属性中,或者考虑将项目存储在 js 变量中并将锚点存储在 id 中。当您再次需要数据时,您可以使用锚点上的 id 从 js 变量中重新捕获数据。 (read more here on data attributes)。

【讨论】:

  • 我正在尝试使用 jQZoom 插件并尝试遵循 jqzoom 示例文件中给出的模式
  • 据我了解,您想动态插入一些图像并在其上启动 jqzoom?
  • 好的,快速阅读mind-projects.it/projects/jqzoom 我可以确认您遇到的问题只是混合了双引号和单引号。对 html 属性使用双 qoutes,在 json 字符串中使用单 qoutes,以将其全部保存在一个属性中。顺便说一句,那个插件很糟糕。
【解决方案2】:
html += "<a href='javascript:void(0);' rel=\""+rela+"\" ><img src='x"+i+".jpg' /></a>";

var rela='{gallery:"gal", smallimage:"a", largeimage: "b"}';

【讨论】:

  • 你刚刚使用了双引号......是的,这可能有效,但如果你问我,这仍然是一个不好的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多