【问题标题】:Converting attribute to caption将属性转换为标题
【发布时间】:2012-09-29 07:14:44
【问题描述】:

我正在使用以下代码从列表中的每个图像中获取标题属性:

$("ul#images li img").each(function(index) {
    $(this).attr("title");
});

然后我怎样才能将此属性用作每张图片的标题?我是否首先需要以某种方式将其转换为字符串,然后将其附加到列表项?

谢谢

【问题讨论】:

  • 什么样的标题?只是图片下方的文字?
  • 理想情况下,我会将它绝对定位在图像的顶部,作为取自标题属性的文本。在这一点上,我只需要它在 HTML 中显示,我很确定我可以在它出现后对其进行排序

标签: jquery string attributes append each


【解决方案1】:

属性总是字符串,title 属性也是字符串,所以你只需要附加它。

$("ul#images li img").each(function() {
    $(this).closest('li').append('<br>' + this.title);
});

Fiddle

现在,如果您正在寻找更语义化的 HTML5 解决方案,我建议您使用 figurefigcaption 元素:

$("ul#images li img").each(function() {
    $(this).wrap('<figure/>').after($('<figcaption>', {text: this.title}));
});

Fiddle

【讨论】:

    【解决方案2】:

    您需要一些 CSS 和修改您的 javascript。但基本上你获取 attr 值并将其附加到你喜欢的位置。

    使用您的示例:

    http://jsbin.com/irabiv/1/edit

    $("ul#images li img").each(function(index) {
        $(this).parent().append('<div class="caption">'+$(this).attr("title")+'</div>');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2010-09-14
      • 2011-03-22
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多