当前位置: 首页 > 知识库问答 >
问题:

如何选择放置在带有appendChild的跨度内的img?

羊煜
2023-03-14

我正在使用picturefill.js(Scott Jehl):https://github.com/scottjehl/picturefill/blob/master/picturefill.js

以下是我如何设置它,(一些代码省略了b/c,这只是更多的媒体查询内容)使用span标签数据属性,如他的留档:

<figure>
    <a href='http://www.casaromeromexican.com'>
        <span id="picture" data-picture data-alt="Casa Romero Mexican website">
        <span data-src="img/casa-romero-mexican.jpg"></span>
        <span data-src="img/casa-romero-mexican@2x.jpg" data-media="(min-device-pixel-ratio: 2.0)"></span>
        <span data-src="img/casa-romero-mexican-md.jpg" data-media="(min-width: 768px") </span> 
// and so on...

正确的img正在加载并按预期放置在页面上。以下是生成的HTML的一个片段:

<span data-src="img/casa-romero-mexican-md.jpg" data-media="(min-width: 768px)"><img alt="Casa Romero Mexican website" src="img/casa-romero-mexican-md.jpg"></span>

我想做的是向最终生成的img标签添加一个类。

然而,我甚至不能选择附加的img!以下是我正在做的:

alert(($('#picture').children().find('img').size()));

即使图像在页面上,也返回0。我希望它返回的大小为1,b/c。根据媒体查询,其中1个图像将附加到带有picturefill的页面。

为了确保DOM加载没有问题,我把picturefill.js放在页眉中(尽管JS大部分时间应该放在页脚中),甚至这样做了:

$(document).ready(function() {
        alert('ready!');
        alert(($('#picture').children().find('img').size()));
        });

仍然没有找到img。

共有1个答案

冀鸿才
2023-03-14

http://learn.jquery.com/using-jquery-core/document-ready/

读了这篇文章后,我明白了为什么jQuery没有找到img。在本例中,有必要使用$(window.load(function(){…})。与只等待DOM的$(document).ready()相反,在加载整个页面之前,不会运行脚本。

换句话说,$(文档)。就绪()大部分时间都很好,但在等待可能需要更长时间加载和/或需要用请求获取的媒体元素时就不行了!

 类似资料:
  • 我试图弄清楚如何在显示时选择一个选项,使用旧的javascript风格代码或其他语言,例如: 在angularjs中尝试这样做时,我最终得到了类似下面所示的东西。 这是代码: 如何才能正确地执行此操作?

  • 问题内容: 我正在尝试选中一个复选框的所有复选框。但是该怎么做呢? 这是我的HTML: 我创建了一个额外的复选框以选择并取消选择所有复选框。 JS: 我也尝试过,但是没有一个对我有用:( 问题答案: 您错过了容器的div 和和。 是正确的变体。 https://jsfiddle.net/0vb4gapj/1/

  • 我有下面的标签,这是一个多个选择选项按钮的标签,每个选择有它的div里面有一个标签,然后在这个标签里面有一个ID,我需要用它来确定我想要selenium点击哪个。 我的问题是如何选择正确的标签基于它的儿童ID?

  • 以下是Android Studio的异常输出:

  • 问题内容: 我正在一个项目中,另一个开发人员创建了一个表,该表的列名为。那是两个词之间的空格。如果我使用“企业名称” 运行语句,则说没有名称为“企业”的列。 我怎么解决这个问题? 问题答案: 通常,第一步是首先不要这样做,但如果已经完成,则需要诉诸正确的列名引用: 通常,这类事情是由使用Microsoft Access之类的人创建的,并且总是使用GUI来做他们的事情。