Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery.length查找对象数_Javascript_Jquery_Arrays_Attributes - Fatal编程技术网

Javascript 使用jQuery.length查找对象数

Javascript 使用jQuery.length查找对象数,javascript,jquery,arrays,attributes,Javascript,Jquery,Arrays,Attributes,因此,我有一个页面,其内容是通过JavaScript对象/原型创建的,我尝试使用jQuery.length来查找名称属性的数量,然后将结果显示在表中 这里是一个示例对象/原型——其中有38个,因此理想情况下,最终代码应该返回38: function Player (n, c, s, y, t) { this.name = n; this.team = c; this.salary = s; this.years = y; this.type = t;

因此,我有一个页面,其内容是通过JavaScript对象/原型创建的,我尝试使用jQuery.length来查找名称属性的数量,然后将结果显示在表中

这里是一个示例对象/原型——其中有38个,因此理想情况下,最终代码应该返回38:

function Player (n, c, s, y, t) {
    this.name = n; 
    this.team = c;
    this.salary = s; 
    this.years = y;
    this.type = t;
}

var mwQB1 = new Player ("D. Brees", "NO", 31, 0, "FTE");    
下面是一个函数,该函数应计算结果并将结果发布到id=“teamStatsSize”:

 $("document").ready(function () {
    var mwCalcRoster = function () {
    var mwRosterSize = $("prototype[name]").length;
    var mwElementRoster = document.createElement("p");
    mwElementRoster.innerHTML = mwRosterSize; 
    document.getElementById("teamStatsSize").appendChild(mwElementRoster);
} 
mwCalcRoster(); });
如果代码在正确的位置发布,那么它只会发布0而不是38。

 $("document").ready(function () {
    var mwCalcRoster = function () {
    var mwRosterSize = $("prototype[name]").length;
    var mwElementRoster = document.createElement("p");
    mwElementRoster.innerHTML = mwRosterSize; 
    document.getElementById("teamStatsSize").appendChild(mwElementRoster);
} 
mwCalcRoster(); });

谢谢你的帮助

您目前的情况存在一些问题。我看不到您的html标记,但我假设您希望获取teamStatSize中的玩家数量,并在添加新玩家时使用计数进行更新

$("prototype[name]").length
不确定你在这里要做什么,但也许在计算玩家原型的数量?我不认为它会正常工作,但你很接近。如果愿意,可以计算容器中段落标记的数量

我试着给你们做模型和示范。确保该函数在引用jQuery后运行。最好是在页面底部,紧靠正文之前,我们不需要.ready,因为所有DOM都将被加载

一些HTML:

<div id="teamStatsSize">    
  <div id="count">Total Number of Players: <span>0</span></div>
</div>
然后,我们创建一个自调用函数,在函数和逻辑中使用名称空间。我们以$的形式传入jQuery,这使得jQuery在对象内部可用

(function($){
    var app = {
        init: function() {
            this.addPlayer("Steve S", "CAR", 31, 0, "FTE");
            this.addPlayer("TO", "??", 31, 0, "FTE");
            this.addPlayer("Mike Vick", "JETS", 31, 0, "FTE");
            this.addPlayer("Eli Manning", "NY", 31, 0, "FTE");
        },
        mwCalcRoster: function(){
            var updateRosterSize = app.mwRosterSize();
        },
        players: [],
        addPlayer: function(n, c, s, y, t) {
            var $container = $('#teamStatsSize');

            // Create the player, add to a player array. 
            var playername = new Player (n, c, s, y, t);

            // Push the new player to an array. 
            app.players.push(playername);

            $container.append('<p>Name: '+playername.name+', Salary: '+playername.salary+', Team: '+playername.team+', Years: '+playername.years+', Type: '+playername.type+'</p>');

            // Update the Player Count
            app.updateRosterSize();

        },
        mwRosterSize: function() {
            return this.players.length || 0;
        },
        updateRosterSize: function() {
            var size = this.mwRosterSize();
            $('#count span').html(size);
        }

    }
    // Expose "app" object to the window. 
    window.app = app;
}(jQuery));

实际上,有数百种方法可以做到这一点。希望这对你有帮助

确保生成内容后脚本正在运行。请参见:代码嵌套在$(“文档”)中。在定义“player对象”变量并调用用于显示这些变量的函数后准备就绪,因此这应该不是问题。lo dash解决方案有点超出我的经验水平。我尝试了几种不同的方法,但都没有用。似乎无论我是否使用object/prototype/Player,我都无法让代码识别对象。
app.init(); // This will add the 4 players we create inside the init function. 

app.mwRosterSize(); // Returns 4, which is the length of the app.players array. 

app.addPlayer("New Guy", "NY", 31, 0, "FTE"); // Add new player.