小编the*_*ear的帖子

使用jQuery迭代元素属性

我知道可以使用该attr()方法检索单个属性,但我正在尝试迭代元素的所有属性.对于上下文,我在一些XML上使用jQuery ...

<items>
  <item id="id123" name="Fizz" value="Buzz" type="xyz">
    <subitem name="foo">
    <subitem name="bar">
  </item>
  <item id="id456" name="Bizz" value="Bazz" type="abc">
    <subitem name="meh">
    <subitem name="hem">
  </item>
</items>
Run Code Online (Sandbox Code Playgroud)

我已经能够用...迭代这些项目了...

$(xml).find('item').each(function() {
  // Do something to each item here...
});
Run Code Online (Sandbox Code Playgroud)

但我希望能够为每个"项目"获取一系列属性,以便我可以迭代这些...

例如

$(xml).find('item').each(function() {
  var attributes = $(this).attributes(); // returns an array of attributes?
  for (attribute in attributes) {
    // Do something with each attribute...
  }
});
Run Code Online (Sandbox Code Playgroud)

我已经在jQuery文档中进行了一些搜索,在谷歌的其他地方进行了搜索,但没有运气.如果没有别的,我可能只是在排除与attr()jQuery对象的方法相关的结果时遇到问题.提前致谢.

xml jquery dom traversal

46
推荐指数
2
解决办法
5万
查看次数

如何从ALREADY正在运行的进程中捕获stdout

我有一个正在运行的cron工作,它将持续一段时间,我想查看它的stdout.我不知道这个过程是由cron启动的重要性,但我想我会提到它.这是在OSX上,所以,我无法访问像.../proc/[pid]/...,或truss,或strace这样的东西.使用IO重定向(例如script > output & tail -f output)执行的建议是不可接受的,因为此过程已经1)已经运行,并且2)无法通过重定向停止/重新启动.如果有一些通用解决方案适用于各种Unices,那将是理想的,但具体而言我现在正试图在Mac上实现这一点.

macos cron stdout process capture

23
推荐指数
3
解决办法
2万
查看次数

如何设置Perl的bignum的精度水平?

我正在尝试在Perl中使用bignum模块并想要设置精度.我知道这可以通过一个内衬来完成,详见模块的CPAN页面:

$ perl -Mbignum=p,-50 -le 'print sqrt(20)'
Run Code Online (Sandbox Code Playgroud)

...它将打印出20到50位精度的平方根,但我想知道的是,无论如何都要在脚本中设置精度,例如:

#!/usr/bin/perl
use bignum;

setPrecision(-50);
print sqrt(20);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我在这里,Google和PerlMonks都没有运气.提前致谢.

precision perl bignum

9
推荐指数
1
解决办法
1589
查看次数

Google地图叠加层

我正在尝试找到一些可以从KML和/或KMZ数据生成Google地图叠加层的内容,最好是F/OSS.

我们有一个我们正在努力的活动网站,去年需要容纳约16,000个地方标记,今年可能至少会有这么多.去年,完成该网站的公司只是将KML数据直接提供给gMaps API,并让它将所有标记放在客户端.显然,这成为了一场表演的噩梦,并且倾向于使旧的浏览器"冻结"(或者至少一次冻结几分钟).

理想情况下,此服务器端脚本将采用KML,地图的纬度/经度中心和地图缩放级别,并将所有可见位置标记适当地合并为单个GIF或PNG覆盖.

任何有关此的指导或建议将不胜感激.

更新10/8/2008 - 我在这里和其他地方遇到的大部分信息似乎表明减少地图上的点数是要走的路(也就是说,从一个地方查看时,使用一个标记代表几个更高的海拔/缩放级别).虽然在某些情况下这可能是一个很好的方法,但它在这里不起作用.我们正在寻找具有数千个标记的美国地图的视觉效果.我探索过的一个选项是名为PushPin的服务,当推送(推测)KML将创建服务器端,具有渲染到单个图像上的所有可见点(基于中心纬度/经度和缩放级别)的覆盖,因此不是执行数千个DOM操作客户端,我们将所有这些标记合并到一个图像服务器端,并在客户端执行单个DOM操作.PushPin服务非常灵活,如果没有相关成本,肯定会有效.我们真正寻找的东西F/OSS的是,我们可以运行服务器端产生叠加自己.

javascript php google-maps overlays

7
推荐指数
1
解决办法
3442
查看次数

使用Perl替换运算符保留捕获

有人可以解释为什么以下代码......

#!/opt/local/bin/perl
use strict;
use warnings;

my $string;

$string = "\t\t\tEntry";
print "String: >$string<\n";

$string =~ s/^(\t*)//gi;

print "\$1: >$1<\n";
print "String: >$string<\n";
print "\n";

$string = "\t\t\tEntry";

$string =~ s/^(\t*)([^\t]+)/$2/gi;

print "\$1: >$1<\n";
print "String: >$string<\n";
print "\n";

exit 0;
Run Code Online (Sandbox Code Playgroud)

...产生以下输出......

String: >           Entry<
Use of uninitialized value in concatenation (.) or string at ~/sandbox.pl line 12.
$1: ><
String: >Entry<

$1: >           <
String: >Entry<
Run Code Online (Sandbox Code Playgroud)

......或更直接:为什么第一次替换中的匹配值不会保留在$ 1中?

regex perl capture

6
推荐指数
1
解决办法
5828
查看次数

在地图上重新删除多个Google地图标记而不重绘

我有一套较大的(~1,300)标记,我将它放在时间轴上的地图上.基本上就像播放视频一样,在时间序列上,标记google.maps.Animation.DROP在地图上使用.我们有标准的视频/音频播放器类型控件,允许您导航时间线:播放/暂停,跳到开始,跳到结束,以及在时间线内任意移动的滑块条.

如果我从地图开始为空并且时间线在开头处暂停然后跳到结尾,则会有一个短暂的延迟,因为所有这些标记对象都被创建,然后它们一起掉到地图上.这可以.

一旦放置了标记并且用户在时间线中向后移动(到特定标记不再可见的点),我执行a marker.setMap(null)并且标记被隐藏.从我读到的这是删除标记的正确方法,它的工作原理.

如果您创建/删除所有(或大量)标记,然后导航回时间轴(以便删除大量标记),则会出现一个大问题,然后再次向前跳转.这会在地图上产生令人讨厌的针脚闪光,然后消失并突然从地图顶部掉落.

如上所述,一次引脚掉落时会发生正确的效果(引脚掉入但未预先出现在地图上),但随后的下降会导致这种奇怪的行为.对于少量引脚而言,这在很大程度上是难以察觉的,但是有很多引脚会让人分心.

似乎标记的内部状态中必定存在某些marker.setMap(null)未真正重置的内容,但我完全不确定它可能是什么.

我最初根据需要创建了新标记,然后在它们消失时将其销毁,但这种开销使得事情变得迟缓.从理论上讲,我觉得我的方法应该贯穿始终,但我基本上得到了一个具有正确效果的好镜头,并且重复表现得非常糟糕.

有没有人看到我做错了什么或有关于如何使这种行为的建议?

添加引脚,显示和隐藏的逻辑大致如下:

Realtime.prototype.placePin = function(ent) {
    var ctxt = this;

    ent.latLng = new google.maps.LatLng(ent.lat, ent.lng);

    ent.marker = new google.maps.Marker({
        position: ent.latLng,
        map: null,
        animation: google.maps.Animation.DROP,
        optimized: false
    });
};

Realtime.prototype.tick = function(force_tick) {
    var ctxt = this;

    if ((!ctxt.playing || ctxt.dragging) && !force_tick) {
        return;
    } else {
        ctxt.time += ctxt.per_tick;
    }
    ctxt.nowDate = new Date(ctxt.time * 1000);

    ctxt.pins_to_drop = [];     
    for (var …
Run Code Online (Sandbox Code Playgroud)

javascript animation google-maps google-maps-api-3

5
推荐指数
1
解决办法
753
查看次数

从 UTF-8 转换为 Shift-JIS

当前电子邮件的格式为 UTF-8。它不适用于 Shift-JIS。
如何从 UTF-8 转换为 SHIFT-JIS。该解决方案必须是 PHP 解决方案。

这是我到目前为止所尝试过的

$subject = mb_convert_encoding ($subject, "JIS", "SJIS");

$subject = base64_encode ($subject);

$subject = "=?iso-2022-jp?B?" . $subject . "?=";    
Run Code Online (Sandbox Code Playgroud)

php

4
推荐指数
1
解决办法
8669
查看次数

使用 Sequelize 查询自联接,包括相关记录

我们将 Postgres 用于 Node.js 应用程序,并有一个 Sequelize 模型Entry,大致定义为:

const entriesModel = sequelize.define('Entry',
    {
        id: {
            type: DataTypes.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        post_date: {
            type: DataTypes.DATE,
            allowNull: false,
            defaultValue: () => new Date()
        }
        /* ...more fields here, etc, etc... */
    }, {
        classMethods: {
            associate: (models) => {
                entriesModel.hasOne(models.Entry, {
                    onDelete: 'CASCADE',
                    foreignKey: {
                        name: 'parent_id',
                        allowNull: true
                    },
                    as: 'ParentEntry'
                });
            }
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

基本上,一个条目可能有一个相应的父条目。我想检索所有条目并通过它们的父条目,但是当我尝试时:

return models.Entry.findById(id, {
    include: [
        {
            model: models.Entry,
            where: {
                parent_id: …
Run Code Online (Sandbox Code Playgroud)

join foreign-keys relationship node.js sequelize.js

3
推荐指数
1
解决办法
3732
查看次数