我发现了许多通过属性值查找元素而不是使用名称的示例。我想查找包含属性的所有元素(可以是链接,按钮等)deleteuserid。我尝试了这个:
console.log($('[deleteuserid!=""]'));
Run Code Online (Sandbox Code Playgroud)
但这发现“一切”甚至不包含deleteuserid属性...
像这样:jQuery如何基于数据属性值查找元素?期望我没有具体的价值(换句话说,我想找到$("ul").find("[data-slide=*]");
我迭代一个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是的,我在外面删除项目 - 但在迭代时肯定不会.怎么解决这个?我不使用任何线程.
这是一个基本的类构造,在使用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()方法.如何解决?
abstract class MyClass
{
private static makeMePublic()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我想让MyClass :: makeMePublic方法可以从外部调用.我在这里看到了一个解决方案:使用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。
我有一份表格和一份提交.如果有东西被填满,在提交之前我想确保它的价值很高(用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) 这是:
$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)
但它非常繁琐.有什么方法可以简化这个吗?
这种形式的演员阵容是可以的:
((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物体?
$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) 一个非常简单的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.但如果我有一个输入,它确实有效!
php ×5
jquery ×3
html ×2
java ×2
javascript ×2
ajax ×1
mysql ×1
phpunit ×1
reflection ×1
unit-testing ×1