小编Nea*_*eal的帖子

.prop()vs .attr()

所以jQuery 1.6具有新功能prop().

$(selector).click(function(){
    //instead of:
    this.getAttribute('style');
    //do i use:
    $(this).prop('style');
    //or:
    $(this).attr('style');
})
Run Code Online (Sandbox Code Playgroud)

或者在这种情况下,他们做同样的事情?

如果我有转用prop(),所有的旧attr()电话,如果我切换到1.6将打破?

UPDATE

selector = '#id'

$(selector).click(function() {
    //instead of:
    var getAtt = this.getAttribute('style');
    //do i use:
    var thisProp = $(this).prop('style');
    //or:
    var thisAttr = $(this).attr('style');

    console.log(getAtt, thisProp, thisAttr);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<div id='id' style="color: red;background: orange;">test</div>
Run Code Online (Sandbox Code Playgroud)

(另见这个小提琴:http://jsfiddle.net/maniator/JpUF2/)

控制台会记录getAttribute作为一个字符串,并attr作为一个字符串,但prop作为一个CSSStyleDeclaration,为什么?这对我未来的编码有何影响?

javascript jquery dom prop attr

2249
推荐指数
14
解决办法
57万
查看次数

从n返回k个元素的所有组合的算法

我想写一个函数,它将一个字母数组作为参数,并选择一些字母.

假设您提供了8个字母的数组,并希望从中选择3个字母.然后你应该得到:

8! / ((8 - 3)! * 3!) = 56
Run Code Online (Sandbox Code Playgroud)

数组(或单词)返回,每个包含3个字母.

algorithm combinations

551
推荐指数
23
解决办法
43万
查看次数

在取消设置元素后重新生成数组键

我有一个数组:

$array = array(1,2,3,4,5);
Run Code Online (Sandbox Code Playgroud)

如果我要转储数组的内容,它们将如下所示:

array(5) {
  [0] => int(1)
  [1] => int(2)
  [2] => int(3)
  [3] => int(4)
  [4] => int(5)
}
Run Code Online (Sandbox Code Playgroud)

当我循环并取消设置某些键时,索引全部被抬起.

foreach($array as $i => $info)
{
  if($info == 1 || $info == 2)
  {
    unset($array[$i]);
  }
}
Run Code Online (Sandbox Code Playgroud)

随后,如果我现在做了另一个转储,它看起来像:

array(3) {
  [2] => int(3)
  [3] => int(4)
  [4] => int(5)
}
Run Code Online (Sandbox Code Playgroud)

有没有一种正确的方法来重置数组,所以它的元素再次为零?

array(3) {
  [0] => int(3)
  [1] => int(4)
  [2] => int(5)
}
Run Code Online (Sandbox Code Playgroud)

php

168
推荐指数
4
解决办法
11万
查看次数

查找变量是否可被2整除

如何判断变量是否可被2整除?此外,我需要做一个功能,如果它是,并做一个不同的功能,如果不是.

javascript modulo divide

118
推荐指数
8
解决办法
21万
查看次数

当有rownames时,write.table会将不需要的前导空列写入标题

检查这个例子:

> a = matrix(1:9, nrow = 3, ncol = 3, dimnames = list(LETTERS[1:3], LETTERS[1:3]))
> a
  A B C
A 1 4 7
B 2 5 8
C 3 6 9
Run Code Online (Sandbox Code Playgroud)

表格显示正确.将它写入文件有两种不同的方式...

write.csv(a, 'a.csv') 这给出了预期:

"","A","B","C"
"A",1,4,7
"B",2,5,8
"C",3,6,9
Run Code Online (Sandbox Code Playgroud)

write.table(a, 'a.txt')这螺丝了

"A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9
Run Code Online (Sandbox Code Playgroud)

事实上,缺少一个空的标签....这对于下游事物来说是一种痛苦.这是一个错误还是一个功能?有解决方法吗?(除了write.table(cbind(rownames(a), a), 'a.txt', row.names=FALSE)

干杯,yannick

r export-to-csv write.table

84
推荐指数
3
解决办法
6万
查看次数

为什么Firebug说toFixed()不是函数?

我正在使用jQuery 1.7.2和jQuery UI 1.9.1.我在滑块内使用下面的代码.(http://jqueryui.com/slider/)

我有一个函数应该测试两个值,并根据两个值之间的差异重新格式化它们(到适当的小数位).如果差异大于10,我将解析整数.如果差值大于5,则应保留一个小数.其他一切,我会保留两位小数.

当我输入两个差值为10或更小的值时,我使用toFixed()函数.而且,在Firebug中,我看到一个错误:

TypeError: Low.toFixed is not a function
Low = Low.toFixed(2);
Run Code Online (Sandbox Code Playgroud)

有什么简单的我做错了吗?

这是我的代码:

var Low = $SliderValFrom.val(),
High = $SliderValTo.val();

// THE NUMBER IS VALID
if (isNaN(Low) == false && isNaN(High) == false) {
    Diff = High - Low;
if (Diff > 10) {
      Low = parseInt(Low);  
  High = parseInt(High);    
} else if (Diff > 5) {
       Low = Low.toFixed(1);
       High = High.toFixed(1);
} else {
       Low = Low.toFixed(2);
   High = High.toFixed(2);
}
}
Run Code Online (Sandbox Code Playgroud)

javascript

82
推荐指数
4
解决办法
13万
查看次数

有没有办法使用ON DUPLICATE KEY更新我要插入的所有内容?

我知道ON DUPLICATE KEY UPDATE如果已经存在该密钥的记录,您可以使用更新某个值,

我可以做这个:

INSERT INTO `tableName` (`a`,`b`,`c`) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE `a`=1, `b`=2, `c`=3
Run Code Online (Sandbox Code Playgroud)

但是,如何在不必写出两次列和值的情况下执行此操作?

mysql insert on-duplicate-key

68
推荐指数
4
解决办法
5万
查看次数

导入不在PhpStorm/Webstorm中使用JavaScript

我正在尝试运行一个编写在教程中的JavaScript代码,如下所示:

main.js

import Vue from 'Vue';
import Alert from './components/Alert.vue';

new Vue({
    el: 'body',

    components: { Alert }
})
Run Code Online (Sandbox Code Playgroud)

但是,PhpStorm发出以下错误:

当前的JavaScript版本不支持导入声明

如何在PhpStorm中获得更新的(?)JavaScript版本?这真的是问题吗?

javascript phpstorm webstorm ecmascript-6

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

为什么$ a + ++ $ a == 2?

如果我试试这个:

$a = 0;    
echo $a + ++$a, PHP_EOL;
echo $a;
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

2
1
Run Code Online (Sandbox Code Playgroud)

演示:http://codepad.org/ncVuJtJu

这是为什么?

我希望得到这个作为输出:

1
1
Run Code Online (Sandbox Code Playgroud)

我的理解:

$a = 0;                    // a === 0    
echo $a + ++$a, PHP_EOL;   // (0) + (0+1) === 1
echo $a;                   // a === 1
Run Code Online (Sandbox Code Playgroud)

但为什么输出不是这样呢?

php math operator-precedence

65
推荐指数
5
解决办法
5867
查看次数

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