gpt4 book ai didi

javascript - getElementById javascript 未定义

转载 作者:行者123 更新时间:2023-11-29 22:16:44 24 4
gpt4 key购买 nike

我目前正在为 Greasemonkey 编写这个脚本。此脚本的目的是删除网站 MeetMe.com 的供稿中特定用户的帖子。
我的代码是:

// ==UserScript==
// @name PostBeGone
// @namespace TestingNameSpace
// @include http://www.meetme.com/apps/home
// @version 1
// ==/UserScript==
var posterId;
var blacklist = new Array();
var toDelete;
blacklist [0] = 45112400; //These are just random peoples' user Id's that I am
blacklist [1] = 9649820; //using to test this script
blacklist [2] = 55907221;
blacklist [3] = 56788411;
window.onload = function checkAndRemove () {
var children = document.getElementById('feedReloadArea').childnodes;
alert(children); //alert says "undefined"
i = 0;
While (i < children.length)
{
posterId = children[i].getAttribute('data-poster');
toDelete = null;

i2 = 0;
while (i2 < blacklist.length)
{
if (posterId == blacklist[i2])
{
toDelete = children[i];
break;
}
i2++;
}
if (toDelete != null)
{
toDelete.parentNode.removeChild(toDelete);
}
i++;
}
}

通过多次执行使用各种警报,我知道代码一直执行到我有 alert(children) 的位置,它返回 undefined

在我的脚本中加入 window.onload = 之前,在搜索谷歌和这个网站寻找答案时,我在很多地方读到问题可能是脚本可能试图在页面之前执行已加载,所以我添加了 window.onload =。然而,问题仍然存在,我找不到任何与我的问题足够相似的问题来理解它。

为了查看元素的 html 代码,我一直在使用 Firefox 的“检查元素”功能。页面上可能有帮助的 html 代码片段是:

<div id="feedReloadArea" style="display: block;">  
<div class="feedItemArea feedSpotlightHighlight" data-comment-maintenance="0" data-created-at="1360098729.05091" data-numeric-reference-id="" data-reference-uuid="0d76957f-2f64-4654-99ea-f67974116b32" data-entity="StatusUpdate" data-poster="59538173" data-uuid="b9e85465-5b91-4b5c-a443-c4e37d716481"></div><div class="feedItemArea" data-comment-maintenance="0" data-created-at="1360103761.624714" data-numeric-reference-id="" data-reference-uuid="c2c201ca-a391-4fff-aec2-9823a3e90815" data-entity="StatusUpdate" data-poster="45508368" data-uuid="11149a32-38cf-4919-b081-0bd39bdc49eb"></div>
<div class="feedItemArea" data-comment-maintenance="0" data-created-at="1360103737.756343" data-numeric-reference-id="" data-reference-uuid="997824a2-994c-467f-bfbe-aa4beb1e402f" data-entity="StatusUpdate" data-poster="38033716" data-uuid="bc075882-771c-4ee2-ad28-dbf21fbf3bd3"></div>

澄清一下,这只是 HTML 代码的一部分。提要上有很多这样的类,因为每个类都代表一个用户的帖子。此外,每个类中都有多个,例如用户链接和用户个人资料图片。但是,我想删除与黑名单中的任何海报 ID 相同的完整 feedItemArea 类。

我希望我已经足够清晰和简洁以便于提供帮助,但是如果需要任何其他信息来帮助我,请告诉我,我会发布。我的问题是什么导致 children 成为 undefined?提前致谢。

最佳答案

JavaScript 区分大小写,它是 childNodes而不是 childnodes。顺便说一句,因为您可能只想迭代元素节点(没有文本节点、评论等),请使用 children collection .此外,您几乎不需要 window.onload,因为 GreaseMonkey 脚本已执行 on DOMready默认情况下。

关于javascript - getElementById javascript 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com