【问题标题】:jquery .attr('alt','logo').css('display','none') not working !jquery .attr('alt','logo').css('display','none') 不工作!
【发布时间】:2011-02-13 17:22:33
【问题描述】:

我有以下三行,前两行获取文档上的所有图像并隐藏所有图像,但是当我添加第三行时,显示所有图像。

我需要它来仅隐藏具有 alt=minimize 和 alt=maximize 属性的图像,但由于某种原因隐藏了所有图像。

$('img').attr('alt', 'minimize').css("display","none");
$('img').attr('alt', 'maximize').css("display","none");


$('img').attr('alt', 'logo').css("display","inline");

我用的是IE7,不过应该兼容IE6和IE8。

非常感谢任何帮助。

谢谢。

【问题讨论】:

  • 你能改写“考虑属性 alt。”,我不知道你在说什么。

标签: jquery-selectors attributes


【解决方案1】:

OP指的是

http://dev.w3.org/csswg/css3-values/#attr

alt 我认为 只是一个字符串类型,而不是“logo”,无论如何,这不是数据类型。 试试看。其实可以在html5 img中查找alt

http://www.w3.org/TR/html5/the-img-element.html#the-img-element

http://www.w3.org/TR/html5/the-img-element.html#attr-img-alt

http://www.w3.org/TR/html5/the-img-element.html#alt

(按参考点击顺序,最后一个为目标)

即使这不是确切的答案(应该是),它也应该是朝着正确方向迈出的一步。

我实际上正在尝试自己弄清楚如何使用 attr() 在 css 中引用 css 属性 - 它在顶部 URL 中提到。如果我有我的 druthers,我可以同时使用 css calc(),但那是草稿。也许我可以让它工作......

【讨论】:

    【解决方案2】:

    在调用 $('img').attr('alt', 'logo').css("display","inline"); “attr”不会过滤您使用 $("img") 捕获的 dom 元素集。

    如果您想隐藏所有内容,但不想隐藏属性为 'alt' = 'logo' 的图像,我认为您可以:

    给它一个标识 ID,然后调用:$("img").not("#logo").hide()

    来自 jquery 网站:

    隐藏():

    匹配的元素将被隐藏 立即,没有动画。这 大致相当于调用 .css('display', 'none'),除了 显示属性的值为 保存在 jQuery 的数据缓存中,这样 显示可以稍后恢复到 初始值。如果一个元素有一个 inline 的显示值,则为 隐藏和显示,它将再次 内联显示。

    attr(属性名) 返回:字符串

    描述:获取一个值 第一个元素的属性 一组匹配的元素。

    如果您想隐藏所有最大化和最小化图像(两者共享属性的“imize”部分): $(parentElement).find("img[@attr $= '*imize']").hide()

    【讨论】:

      【解决方案3】:

      我认为您没有正确使用attr 函数,您可能正在寻找attribute equals selector?

      $('img[alt=minimize]').css("display","none");
      

      您对代码所做的是,

      1. 选择所有图片
      2. 将其 alt 属性更改为 'minimize'
      3. 隐藏它们
      4. 选择所有图片
      5. 将他们的 alt 属性更改为 'maximize'
      6. 隐藏它们
      7. 选择所有图片
      8. 将其 alt 属性更改为 'logo'
      9. 隐藏它们

      【讨论】:

      • 感谢您如此快速的回复和详细的回答。 +1
      • @JimMichaels 这个问题是关于 jQuery 的,所以没有。
      【解决方案4】:

      你做什么:你把文档中的每个img 设置为altlogo,然后设置display: inline;

      请注意,attr('alt',string) 不会将所有图像过滤为具有alt=string 的图像,而是将所有图像上的alt 属性设置为string

      你要使用的是这个:

      $('img[alt="minimize"]').css...
      $('img[alt="maximize"]').css...
      
      $('img[alt="logo"]').css...
      

      【讨论】:

      • 非常感谢,我不知道我在做什么。谢谢这么快的回复。 +1
      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2012-11-13
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多