Javascript 使用jQuery.length查找对象数
因此,我有一个页面,其内容是通过JavaScript对象/原型创建的,我尝试使用jQuery.length来查找名称属性的数量,然后将结果显示在表中 这里是一个示例对象/原型——其中有38个,因此理想情况下,最终代码应该返回38: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;
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.