小编Nat*_*ong的帖子

我如何检查jQuery对象?

在jQuery 1.4.4中,如果我在Google Chrome控制台中执行此操作:

var divs = $('div');
Run Code Online (Sandbox Code Playgroud)

...我得到的东西似乎是一个DOM元素数组.但我知道它必须是一个jQuery对象,因为我可以链接jQuery方法:

divs.hide('slow').show('slow'); // etc
Run Code Online (Sandbox Code Playgroud)

我想看到的是jQuery对象,其中包含.fn列出其所有方法的属性等.我很确定我曾经能够看到这个.

如果我创建自己的对象,像这样:

var foo = {species: 'marmot', flavor: 'lemon'}
Run Code Online (Sandbox Code Playgroud)

...我可以在控制台中挖掘它的属性.

如何在控制台中检查jQuery对象?

另外,为了使它看起来像一个数组,正在做些什么?

更新 - 它确实发生了变化

如果我加载旧版本的jQuery - 例如,将其复制并粘贴到我的控制台中的空白选项卡中:

http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js

......然后我这样做:

var divs = $('div');
Run Code Online (Sandbox Code Playgroud)

...我确实回来了jQuery.fn.jQuery.init,我可以在控制台中深入了解.从那时起,事情发生了变化.

jquery internals

10
推荐指数
1
解决办法
2万
查看次数

PHP:一个类如何引用自己的名字?

在PHP中,类如何引用自己的名称?

例如,该方法会是什么样的?

Dog::sayOwnClassName();
//echos "Dog";
Run Code Online (Sandbox Code Playgroud)

更新

我看到每个人都在说get_class($this).但这不正确.如果我创建一个Dog 实例,那将会有效.我问的是调用Dog类本身的方法.如果是Dogextends Mammal,那么get_class($this)Dog类内部的调用将返回'Mammal'.

换一种说法:

  • 我不是在问"Dog class的类是什么",答案是"Dog类是Mammal类的成员".
  • 我也没有问过"给狗狗的一个实例(叫做罗孚),什么是它的类?",答案是"狗".
  • 我问的是,"狗班本身能告诉我'我的名字是狗吗?'"

例如:

class Mammal {    
  public function find_by_id($id){
    $query = "SELECT * FROM " . $myclass . " WHERE `id` = " . $id;
    //(etc)
    return $matching_object;
  }
}

class Dog extends Mammal {
//find_by_id method should know to do a SELECT from Dog table     
}
Run Code Online (Sandbox Code Playgroud)

更新2

Yacoby的建议get_called_class()是正确的.以下是我给出的示例中的工作原理.

class Mammal {    
      public function find_by_id($id){
        $myclass …
Run Code Online (Sandbox Code Playgroud)

php

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

从类的字符串名称,我可以得到一个静态变量?

给定PHP中类的字符串名称,如何访问其中一个静态变量?

我想做的是:

$className = 'SomeClass'; // assume string was actually handed in as a parameter
$foo = $className::$someStaticVar;
Run Code Online (Sandbox Code Playgroud)

...但PHP给了我一个可爱的"解析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM",这显然是双冒号(::)的希伯来名字.

更新:不幸的是,我必须使用PHP 5.2.X.

更新2:正如MrXexxed猜测的那样,静态变量是从父类继承的.

php static

9
推荐指数
2
解决办法
9088
查看次数

Yii - 使用活动记录获取列的最小值,最大值

我正在使用有效记录.让我们称之为产品型号.如何使用活动记录从"tbl_product"中选择"%发球%"这样的名称来选择最小值(价格)?

php activerecord yii

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

如何在FactoryGirl工厂定义方法?

如何定义在FactoryGirl工厂中使用的常规方法?例如:

FactoryGirl.define do
  def silly_horse_name
   verbs = %w[brunches dribbles haggles meddles]
   nouns = %w[landmines hamlets vandals piglets]
   "#{verbs.sample} with #{nouns.sample}".titleize
  end

  factory :racehorse do
    name { silly_horse_name } # eg, "Brunches with Landmines"

    after_build do |horse, evaluator|
      puts "oh boy, I built #{silly_horse_name}!"
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

这样做根本不打电话silly_horse_name; 如果重新定义raise 'hey!',没有任何反应.

我正在使用FactoryGirl 2.5.2.

ruby factory-bot

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

是`save`和`save!`唯一可以保存ActiveRecord对象的方法吗?

我正在尝试调试一些代码.一个奇怪的部分是before_save回调被调用两次,尽管我只打算保存一次对象.

为了追踪这种情况,我在课堂上定义了这些方法:

%w[save save!].each do |method_name|
  define_method(method_name) do |*args|
    puts "who called '#{method_name}'? #{caller.first}"
    super(*args)
  end
end
Run Code Online (Sandbox Code Playgroud)

从这个输出中,我只看到一个持久性调用.

我相信,savesave!是导致ActiveRecord的持久化对象的唯一方法.据我所知,其他持久性方法依赖于这两者之一; 例如,update_attributes电话save,update_attributes!电话save!

是否有任何方法持有ActiveRecord对象而不调用savesave!

(我正在使用ActiveRecord 3.2.13)

更新

查看3.2.13的Rails源代码,保存保存!调用私有方法create_or_update来完成他们的工作.我曾经git grep寻找其他事件,create_or_update并且只找到了测试和callbacks.rb包装它的东西.

create_or_update反过来,依赖klass.connection.updateself.class.unscoped.insert.

所以问题可能是除了create_or_update持久存在ActiveRecord对象之外还有什么.

ruby rails-activerecord

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

如何获得列表的排列?

如何在Elixir中获得列表的排列?

例如,["a", "b", "c"]我希望:

# [["a", "b", "c"], ["a", "c", "b"], 
# ["b", "a", "c"], ["b", "c", "a"],
# ["c", "a", "b"], ["c", "b", "a"]]
Run Code Online (Sandbox Code Playgroud)

elixir

9
推荐指数
2
解决办法
1965
查看次数

版本控制:合并后删除分支?

当您分支一些代码时,完成分支的工作,并将其合并回主干,您如何处理分支?从存储库中删除它?保留供参考?

看起来你会把它作为参考,但我想这个/branches目录可能会变得混乱.

(如果这不是人们普遍认同的,请发表评论,我会将其作为社区维基.)

澄清

jleedev 是对的 - 我们应该指定我们正在谈论的版本控制系统.

我考虑过Subversion,但也希望听到有关其他系统的回复.请说明您正在回答哪一个,或者,如果您想获得接受的答案<贿赂> <bribery>,请比较和对比几个系统.

svn version-control

8
推荐指数
2
解决办法
1739
查看次数

是什么导致我的Ruby`track`块中出现这种死锁?

我正在阅读Jesse Storimer的优秀着作"使用Unix进程".在一个关于从已经退出的子进程捕获信号的部分中,他给出了一个代码示例.

我稍微修改了这段代码(见下文),以便更清楚地了解正在发生的事情:

  • 父母在信号之间恢复自己的执行(我可以看到它puts),
  • wait在一个多子女执行trap的语句(有时我得到"接到CHLD信号"一次,然后由多个"子PID退出").

预期产出

通常,下面代码的输出类似于:

parent is working hard
Received a CHLD signal
child pid 73408 exited
parent is working hard
parent is working hard
parent is working hard
Received a CHLD signal
child pid 73410 exited
child pid 73409 exited
All children exited - parent exiting too.
Run Code Online (Sandbox Code Playgroud)

偶尔的错误

但有一段时间我得到这样的错误:

trapping_signals.rb:17:in `write': deadlock; recursive locking (ThreadError)
    from trapping_signals.rb:17:in `puts'
    from trapping_signals.rb:17:in `puts'
    from trapping_signals.rb:17:in `block in <main>'
    from trapping_signals.rb:17:in `call' …
Run Code Online (Sandbox Code Playgroud)

ruby multithreading deadlock fork signals

8
推荐指数
1
解决办法
1309
查看次数

为什么我不需要明确借出一个借来的可变变量?

我刚刚写了一个小的Rust程序,它计算Fibonacci数并记住计算.它有效,但我有点困惑为什么,特别是递归调用.(它也可能不是惯用的.)

这是程序:

use std::collections::HashMap;

fn main() {
    let n = 42; // hardcoded for simplicity
    let mut cache = HashMap::new();
    let answer = fib(n, &mut cache);
    println!("fib of {} is {}", n, answer);
}

fn fib(n: i32, cache: &mut HashMap<i32,i32>) -> i32 {
    if cache.contains_key(&n) {
        return cache[&n];
    } else {
        if n < 1 { panic!("must be >= 1") }

        let answer = if n == 1 {
            0
        } else if n == 2 {
            1
        } else …
Run Code Online (Sandbox Code Playgroud)

recursion ownership rust

8
推荐指数
1
解决办法
611
查看次数