首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的KRL foreach行为

奇怪的KRL foreach行为
EN

Stack Overflow用户
提问于 2011-02-13 10:58:28
回答 1查看 41关注 0票数 4

今天我在使用foreach时遇到了一些奇怪的行为。我有一个引入JSON文档的dataset。它的一部分是一个数组,我把它pick()出来并发送给foreach。这是我的全局块:

代码语言:javascript
复制
global {
  dataset appserver <- "http://imaj-app.lddi.org:8010/list/popular" cachable for 1 hour;
  popular = appserver.pick("$..images")
}

有一条规则首先要设置页面。它看起来是这样的:

代码语言:javascript
复制
rule setup {
  select when web pageview "www\.google\.com"

  pre {
    imagelist = <<
      <div id="462popular" style="margin-left:auto;margin-right:auto;width:450px">
        <p>Popular images from the CS 462 <a href="http://imaj-web.lddi.org/">Image Project</a></p>
        <span class="image"></span>
      </div>
    >>;
  }

  prepend('#footer', imagelist);
}

以下是不起作用的规则:

代码语言:javascript
复制
rule images {
  select when web pageview "www\.google\.com"
  foreach popular setting (image)

  pre {
    thumburl = image.pick("$..thumburl");
    viewurl = "http://imaj-web.lddi.org/view?imagekey=" + image.pick("$..imagekey");
    html = <<
      <span class="image"><a href="#{viewurl}"><img src="#{thumburl}" style="border:none"/></a></span>
    >>;
  }

  after('#462popular .image', html);
}

我得到了类似这样的东西(注意滚动条的拇指有多小):

知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-13 11:29:12

您的html结构和插入新内容的after选择器存在递归问题。

用于插入新内容的选择器是

代码语言:javascript
复制
#462popular .image

这意味着html的内容将被插入到id为#462 462popular的元素内的每个具有image类的元素之后。

在您要插入的html中,有一个类名为image的元素,这意味着每次您执行循环时,都会将元素的数量与#462 462popular中的image的类相乘。

:)

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

https://stackoverflow.com/questions/4982168

复制
相关文章

相似问题

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