首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JavaScript定位图像alt

用JavaScript定位图像alt
EN

Stack Overflow用户
提问于 2012-11-14 15:22:55
回答 3查看 1.2K关注 0票数 1

我使用的是一个响应性幻灯片,它使用的只是数字作为图片下方的导航线。我需要用文字代替数字。目前,我将文本作为图像alt,但我在针对文本时遇到了大量问题。我对JS知之甚少,我猜这就是问题所在:)

下面是寻呼机代码:

代码语言:javascript
复制
 //pager
 if (settings.pager) {
      var tabMarkup = [];
      $slide.each(function (i) {
        var n = i + 1;

        var images = $("#slider2 li img");

        tabMarkup +=
          "<li>" +
          "<a href='#' class='" + slideClassPrefix + n + "'>" + images.eq(i).attr("alt") + "</a>" +
          "</li>";
      });
      $pager.append(tabMarkup);

      $tabs = $pager.find("a");

      // Inject pager
      if (options.controls) {
        $(settings.controls).append($pager);
      } else {
        $this.after($pager);
      }

      // Select pager item
      selectTab = function (idx) {
        $tabs
          .closest("li")
          .removeClass(activeClass)
          .eq(idx)
          .addClass(activeClass);
      };
    }

以下是图片:

代码语言:javascript
复制
 <ul class="rslides" id="slider2">
  <li><img src="1.jpg" alt="Alt Sample" /></li>
  <li><img src="2.jpg" alt="Unlock Your Potential" /></li>
  <li><img src="3.jpg" alt="Enable Your Brand" /></li>
  <li><img src="4.jpg" alt="Lean On Our Expertise" /></li>
</ul>

我在导航中添加了"Bit“,这样我就可以找到它了:) n正在提取图像的正确编号。显然,我需要去掉“位”,并将"n“替换为图像alt。有什么建议吗?

更新:

我正在使用插件(希望我能自己写这样的东西!)我尝试过添加针对alt属性的变量,但它们都是未定义的。也许我把它放错地方了?

最后更新:我修改了原始代码以显示更改。非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-14 15:28:31

您有一个数组,但是连接了字符串。

演示

代码语言:javascript
复制
  var tabMarkup = []; // an array
  var images = $("#slider2 li img");
  $slide.each(function (i) { // assuming $slide is a collection
    tabMarkup.push(
      "<li>" +
      "<a href='#' class='" + slideClassPrefix + (i+1) + "'>" + 
      (i+1) +":" +images.eq(i).attr("alt") +"</a>" +
      "</li>");
  });
  $pager.append(tabMarkup.join(""));
票数 2
EN

Stack Overflow用户

发布于 2012-11-14 15:26:17

只需删除n并使用.attr(name)获取alt属性即可。$(this)循环中的.each引用当前项,使用它获取属性:

代码语言:javascript
复制
 // ...
 $slides.each(function() () {
     var n = $(this).attr('alt');

     // ...
 });
 // ...
票数 2
EN

Stack Overflow用户

发布于 2012-11-14 15:39:33

您的选择器可能是这样的:$('img[alt="Enable Your Brand"]')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13381709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档