小编Vin*_*ent的帖子

如何强制子类实现父类的接口方法

我有多个扩展父类的子类。

我想“强制”子类在每个子类中声明一个方法列表。

class childClass_A{
    function interfaceMethod(){}
}
class childClass_B{
    function interfaceMethod(){}
}
etc.
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我研究了接口。

我知道我可以让所有子类实现特定的接口,但这不是多余的代码吗?

class childClass_A implements MyInterface{
    function interfaceMethod(){}
}
class childClass_B implements MyInterface{
    function interfaceMethod(){}
}
etc.
Run Code Online (Sandbox Code Playgroud)

相反,我想到让父类实现该接口。

class parentClass implements MyInterface{
    function interfaceMethod(){}
}

class childClass_A extends parentClass{

}
Run Code Online (Sandbox Code Playgroud)

但是,通过这样做,声明接口方法的“义务”被分配给父类,并且如果子类不包含接口的方法之一,则不会生成错误。

是否可以确保父对象的接口方法也在子类中声明?

php

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

如何在javascript中将json格式的字符串转换为json数组

我使用$ .post()方法来检索json格式的字符串,如下所示:

{elementid:10},{elementid:11},{elementid:12},{elementid:14},{elementid:15}
Run Code Online (Sandbox Code Playgroud)

在$ .post()的成功回调函数中,我想循环这个json格式化字符串的值,但我无法弄清楚如何做到这一点.

  // data returns {elementid:10},{elementid:11},{elementid:12},{elementid:14}, etc.

  $.post('form.php',

        {'postvalues' : input_ids},

        function(data){

              var elements = Array();

              elements = [data];

              for(var i=0; i<elements.length; i++) {
                    var value = elements[i]['elementid'];
                    alert('value = '+value);
              }
  });
Run Code Online (Sandbox Code Playgroud)

当我这样做,而不是value = 10, value = 11, value = 12在警报框中等等,我得到value = undefined

我必须更改变量'data'的格式,以便将其解释为数组值而不是字符串?

谢谢你的帮助

javascript jquery

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

使用jQuery选择多个单选按钮组的第一个单选按钮

我想自动选择多个单选按钮组的第一个单选按钮.

<div class="element">
<input type="radio" name="group1" value="1">
<input type="radio" name="group1" value="2">
<input type="radio" name="group1" value="3">
</div>

<div class="element">
<input type="radio" name="group2" value="1">
<input type="radio" name="group2" value="2">
<input type="radio" name="group2" value="3">
</div>
Run Code Online (Sandbox Code Playgroud)

这是事情,虽然这有效:

$('.element').each(function(){
    $(this).find('input[type=radio]:first').attr('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么我不能使用:first方法使用:first方法

下面的代码不起作用:它只选择第一个div中的第一个单选按钮,你能告诉我为什么吗?

$('.element input[type=radio]:first').each(function(){
    $(this).attr('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery jquery-selectors

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

jQuery('#id').length总是返回1吗?

我无法弄清楚为什么.min在计算页面中具有相同id的元素时似乎总是返回1.我知道在html文档中应该只有具有唯一html id的元素,但在我正在处理的项目中,用户可能无意中添加了重复项.

那么,在计算元素id时,jQuery总是返回1是正常的行为吗?

<div id="1">foo</div>
<div id="1">foo</div>

jQuery(function(){
   alert(jQuery('#1').length); // returns 1
});
Run Code Online (Sandbox Code Playgroud)

我在这里建立了一个例子:http://jsfiddle.net/eSNZx/

谢谢你的帮助

jquery

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

Javascript:如何访问对象中的对象

我正在使用一个语言文件来存储jquery datepicker URL的traductions:http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/i18n/jquery-ui-i18n.min.js ver = 3.4.2

返回jQuery.datepicker.regional对象,我想访问该对象的it(意大利语)属性.我的问题是,当我做类似的事情

console.log(jQuery.datepicker.regional['it'])
Run Code Online (Sandbox Code Playgroud)

要么

console.log(jQuery.datepicker.regional.it)
Run Code Online (Sandbox Code Playgroud)

控制台说对象未定义.

但当我做类似的事情时:

    console.log(jQuery.datepicker.regional);
Run Code Online (Sandbox Code Playgroud)

控制台返回如下内容:

[Object]
    : Object
    af: Object
    ar: Object
    ...
    it: Object
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?"it"对象有没有呢?如何访问jQuery.datepicker.regional对象的"it"对象?

谢谢

javascript-objects jquery-ui-datepicker

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

如何在循环中更新对象属性?

我发现了一个我在尝试使用循环时没有想到的行为,以便更改对象中属性的值集.

基本上,我在循环外声明我的对象.然后我循环一个数值数组,这些值用于更新对象属性.在循环内部,我将当前对象状态存储在外部数组中.

结果是,不是让一个数组包含一系列具有不同数值的对象,我最终在每个存储的对象中都有相同的数值.

这是小提琴http://jsfiddle.net/fAypL/1/

jQuery(function(){

    var object_container = [];

    var numeric_values = [1, 2 , 3, 4];

    var my_object = {};


    jQuery.each(numeric_values, function(index, value){
        my_object['value'] = value;
        object_container.push(my_object);
    });

    jQuery.each(object_container, function(index, value){
        jQuery('#content').prepend(value['value']);
    });

});
Run Code Online (Sandbox Code Playgroud)

我希望得到1 2 3 4作为存储在每个对象中的值,但是,我得到的是4 4 4 4,这对我来说没有意义.

任何关于这种行为的提示都非常受欢迎,谢谢

javascript object

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