【问题标题】:attributing an id to a variable with jquery使用 jquery 将 id 归因于变量
【发布时间】:2015-06-30 18:06:30
【问题描述】:

我正在尝试将列表项 id 的值分配给一个变量,然后使用该变量并使用一些 jquery 函数更改网页的整个设置。但现在我只是想测试整个事情并注销变量的新值。

我在此处阅读以使用 .attr('id') 但我一直未定义。这是html代码的一部分:

    <ul class="vilains">
        <li id="Joker"><img src="image/Joker.jpg" alt="The Joker"></li>
        <li id="Lex Luther"><img src="image/Lex%20Luther.png" alt="Lex Luther"></li>
        <li id="The Trixter"><img src="image/The%20Trixter.jpg" alt="The Trixter"></li>
        <li id="The Kingpin"><img src="image/The%20Kingpin.png" alt="The Kingpin"></li>
    </ul>

我知道超级英雄...只是为了玩玩并测试我的知识...

这是我的 jquery 代码

$(document).ready(function () {
    $(".vilains").find("li").on("click", function (){
        var ennemy = $(this).attr('id');
        console.log(ennemy);
    });   

});

日志始终未定义。 我做错了什么? 也可以得到图片中alt的值吗?

谢谢

【问题讨论】:

  • 就我所见,工作得非常好。
  • 我在这里没有发现问题。它工作正常,而不是未定义jsfiddle.net/yhvzatgf
  • 如果 HTML 元素是动态插入/添加的,请使用event delegation
  • DOM 自然地处理这个问题。 this.id 更简单,可以对您的代码进行微优化。
  • 调试器指向什么未定义?此外,虽然此代码“有效”,因为它会打印您期望的内容,但 id 中的空格无效

标签: jquery attr


【解决方案1】:

你去吧:

 $(document).ready(function () {
      $(".vilains li").on("click", function (){
      var ennemy = $(this).attr('id');
      console.log(ennemy);
      console.log($(this).children('img').attr('alt'));
   });   
 });

这是一个小提琴

https://jsfiddle.net/38zvrypg/3/

【讨论】:

  • 以上是更好的方法,但原始代码并没有“错误”。
  • 如果log之前是未定义的,用这段代码它仍然是未定义的,使用find的原始代码可能更快
  • 试试它对我来说完美的小提琴......我不确定 find 是否比你执行另一种方法的直接选择器更快。
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 2017-08-29
  • 2015-10-01
相关资源
最近更新 更多