小编Joh*_*ith的帖子

jQuery,如何通过属性NAME查找元素?

我发现了许多通过属性值查找元素而不是使用名称的示例。我想查找包含属性的所有元素(可以是链接,按钮等)deleteuserid。我尝试了这个:

console.log($('[deleteuserid!=""]'));
Run Code Online (Sandbox Code Playgroud)

但这发现“一切”甚至不包含deleteuserid属性...

像这样:jQuery如何基于数据属性值查找元素?期望我没有具体的价值(换句话说,我想找到$("ul").find("[data-slide=*]");

html javascript jquery

4
推荐指数
3
解决办法
8236
查看次数

线程"AWT-EventQueue-0"中的Java,ArrayList和Exception java.util.ConcurrentModificationException

我迭代一个ArrayList.如果我使用旧的时尚方式:

for (int i = 0; i < list.size(); i++)
{
    list.get(i).update();;
}
Run Code Online (Sandbox Code Playgroud)

它运行正常.但有了这个:

for (Baseitem item : list)
{
    item.update();
}
Run Code Online (Sandbox Code Playgroud)

它在第一行失败,在ArrayList类中:线程"AWT-EventQueue-0"中的异常java.util.ConcurrentModificationException是的,我在外面删除项目 - 但在迭代时肯定不会.怎么解决这个?我不使用任何线程.

java

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

Php,依赖注入 - 杀死静态方法,但实例化是不必要的

这是一个基本的类构造,在使用DI之前(我知道,它有点不正确的结构,请尽量专注于问题)

class Mobile
{
    public function getWeight()
    {
        return 4;
    }
}

class User
{
    public static function getWeight()
    {
        $mobile = new Mobile();
        return $mobile->getWeight();
    }
}
Run Code Online (Sandbox Code Playgroud)

更新后,使用DI:

class User
{
    public $mobile;

    public function getWeight()
    {
        return $this->mobile->getWeight();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们检查,使用getWeight()没有要求有一个实例,User因为它是静态的 - 创建它的实例毫无意义.但现在,getWeight()不能是静态的,所以无论如何都需要一个实例 - 仅仅因为依赖注入!当然,我知道这个例子有点跛 - 我只是想指出依赖注入杀死静态方法的逻辑,但有时候需要静态方法,因为它有一个类的实例没有意义,只想到JAVA Math.max()方法.如何解决?

php dependency-injection

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

Php:如何将私有静态方法公开,并且类不能被解释?

abstract class MyClass
{
    private static makeMePublic()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我想让MyClass :: makeMePublic方法可以从外部调用.我在这里看到了一个解决方案:使用PHPUnit测试受保护方法但需要对类进行实例化的最佳实践.在这种情况下,它是不可能的.那么,如何制作"公开"这种方法呢?

php reflection

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

phpunit,期望一种方法可以准确运行两次

class TestMe
{
    public function method() { }
}
Run Code Online (Sandbox Code Playgroud)

测试:

class TestTest extends PHPUnit_Framework_TestCase
{
    public function testA()
    {
        $stub = $this->getMock ('TestMe');
        $stub->expects ($this->exactly(2))->method('method');
    }

    public function testB()
    {
        $stub = $this->getMock ('TestMe');
        $stub->expects ($this->exactly(2))->method('method');
        $stub->method();
    }

    public function testC()
    {
        $stub = $this->getMock ('TestMe');
        $stub->expects ($this->exactly(2))->method('method');
        $stub->method();
        $stub->method();
    }

    public function testD()
    {
        $stub = $this->getMock ('TestMe');
        $stub->expects ($this->exactly(2))->method('method');
        $stub->method();
        $stub->method();
        $stub->method();
    }
}
Run Code Online (Sandbox Code Playgroud)

testA,testB,testC通过,testD仅失败,这很奇怪。testA甚至没有调用该方法,因此它应该失败-但它通过了,为什么?testB调用了ONCE方法,但是我们期望TWICE,所以它应该失败了-但是它通过了,为什么?testC正常,没问题testD失败,所以它正常,没问题

也许完全()不能完全按照我的预期工作。我正在使用最新的4.3.4 PhPunit。

php phpunit unit-testing

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

如何在AJAX事件结束之前暂停提交事件?

我有一份表格和一份提交.如果有东西被填满,在提交之前我想确保它的价值很高(用ajax),如果是的话,那么我只能让它继续下去.所以,

$('#contact').submit(function() {
  // ajax
  $.ajax({
    type: 'POST',
    url: $(this).attr('ajaxgetaccommodationsbyemail'),
    success: function(answer) {
        here a popup window opens, which waits  until I press YES or NO
    },
    async: false
  });

   this is when return TRUE or FALSE
   there should be something like
   do while (popupWindowClosed)
   so $.when is not an option

});
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

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

Php,isset - 默认值,可以简化吗?

这是:

$result = $this->getSomething();

$db = new Db();
$db->save($result['DATA']); // might exists or not
$db->save($result['IP']); // might exists or not
$db->save($result['X']); // might exists or not
Run Code Online (Sandbox Code Playgroud)

但那些数组键不一定存在.我可以写这个:

$result = $this->getSomething();

if (!isset($result['DATA']))
{
    $result['DATA'] = null;
}
//same for the other keys

$db = new Db();
$db->save($result['DATA']);
$db->save($result['IP']);
$db->save($result['X']);
Run Code Online (Sandbox Code Playgroud)

但它非常繁琐.有什么方法可以简化这个吗?

php mysql

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

如果"to-cast"类是一个字符串,我该如何施放?

这种形式的演员阵容是可以的:

((CastTo)this).getStates();
Run Code Online (Sandbox Code Playgroud)

但是我有:

Class<? extends CastTo> aClass = this.getClass();
((whatToWriteHere"CastTo"DoesntWork)this).getStates();
Run Code Online (Sandbox Code Playgroud)

我该如何投出结果?我将使用什么来投射Class物体?

java

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

php, array_merge_recursive 仅适用于字符串键

$array1 = [
    '1' => '11',
    'b' => 1,
    3   => 33,
    8   => 8
];
$array2 = [
    '1' => '22',
    'b' => 2,
    3   => 44,
    9   => 9
];

$merged = array_merge_recursive($array1, $array2);
Run Code Online (Sandbox Code Playgroud)

结果是:

array(7) {
  [0]=>
  string(2) "11"
  ["b"]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    int(2)
  }
  [1]=>
  int(33)
  [2]=>
  int(8)
  [3]=>
  string(2) "22"
  [4]=>
  int(44)
  [5]=>
  int(9)
}
Run Code Online (Sandbox Code Playgroud)

所以让我们看一眼:唯一的部分是'b'钥匙,它们实际上是有效的。我不想覆盖它的任何内容,而是将它们放在一个数组中。那挺好的!但是其他数字键(整数或字符串)的键被搞砸了。我想得到这个结果:

[
  '1' => ['11', '22']
  'b' => [1, 2]
  [3] => [33, 44]
  [8] => …
Run Code Online (Sandbox Code Playgroud)

php

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

在ENTER按键上没有触发jQuery提交

一个非常简单的FORM和JS:

$('#gg').submit(function() {
    alert('s');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="gg" method="post">
    <input name="languageId" type="text">
    <input name="languageName" type="text">
</form>
Run Code Online (Sandbox Code Playgroud)

.以某种方式按输入输入不会触发.submit.但如果我有一个输入,它确实有效!

html jquery

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