Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 Can';t获取childnodes.length_Javascript_Html_Jquery_Dom_Html Table - Fatal编程技术网

Javascript Can';t获取childnodes.length

Javascript Can';t获取childnodes.length,javascript,html,jquery,dom,html-table,Javascript,Html,Jquery,Dom,Html Table,我试图找到一个包含图像的节点,然后在该图像的标记中找到一个特定的字符串。但是我不知道图像标签什么时候会出现在页面上,除了它只出现在td元素中,这些元素被归类为bodytextmall。那应该能让我到达那里,对吗 一切正常,直到我尝试获取childNodes属性的length。请看上面的一行 这是正确的代码,还是有其他方法可以确定特定的td是否在其内部某处有img标记?我正在拔掉我剩下的一点点头发,因为我对JavaScript所知甚少,这就是它应该如何工作的 问题是,我只通过img标签知道我是否需

我试图找到一个包含图像的节点,然后在该图像的标记中找到一个特定的字符串。但是我不知道图像标签什么时候会出现在页面上,除了它只出现在
td
元素中,这些元素被归类为
bodytextmall
。那应该能让我到达那里,对吗

一切正常,直到我尝试获取
childNodes
属性的
length
。请看上面的一行

这是正确的代码,还是有其他方法可以确定特定的
td
是否在其内部某处有
img
标记?我正在拔掉我剩下的一点点头发,因为我对JavaScript所知甚少,这就是它应该如何工作的

问题是,我只通过
img
标签知道我是否需要格式化
td
标签,并且我没有组装
td
标签,也无法进入站点的该部分直接进行更改。我已经尝试了CSS选择器,看看我是否可以为部分图像设置样式,但是有一些内联样式我无法覆盖。同样,这是我无法控制的网站的一部分

<script type="text/javascript">

function getTables(dRef) {

var d = document;
var dMid = d.getElementById('mainContent');
var dTabs = dMid.getElementsByTagName('td');

  //  Attempts to load table cells...
  for (var i = 0; i < dTabs.length; i++) {
    //  Attempts to detect the specific cell type...
    if (dTabs[i].className == "bodyTextSmall") {
      //  Attempts to locate the parts inside this cell...
      var myNodes = i.ChildNodes;  //  This part runs, but I can't get "ChildNodes.length" to work

      //  Attempts to notify the user...
      alert(dTabs[i].className + ':  ' + i);
    }
  }

}

window.onload = getTables;

</script>

函数getTables(dRef){
var d=文件;
var dMid=d.getElementById('mainContent');
var dTabs=dMid.getElementsByTagName('td');
//尝试加载表格单元格。。。
对于(变量i=0;i
所以,现在我切换到jQuery,我遇到了同样的问题。我可以知道图像在哪里,但我不能对图像本身做任何事情

<script type="text/javascript"> 

function getTables() {
    //  Locates the correct container for images...
    $('#mainContent img').each(function(idx, item) {
        var tImgs = item.src;
        if (tImgs.indexOf("-ds.") > 0) {
            window.alert(tImgs);
            $(this).append('Here is a message about the image.');  //nothing happens here
        }

    });

}

window.onload = getTables;

</script>

函数getTables(){
//找到图像的正确容器。。。
$('mainContent img')。每个(函数(idx,项){
var tImgs=item.src;
if(tImgs.indexOf(“-ds.”)大于0){
窗口警报(tImgs);
$(this.append('这是一条关于图像的消息');//这里什么也没有发生
}
});
}
window.onload=getTables;
同样,jQuery代码通过响应src中任何带有“-ds.”的图像来响应。我不能让其他事情发生。我知道$(img).append会影响每个图像,所以脚本可以做一些事情


现在,这已经变成了一个得到比我想要的更多或者什么都没有的情况,这真的开始让我非常紧张。

I.ChildNodes
没有定义。
你的意思是
childNodes

而且,
i
是一个数字,而不是DOM元素。

你的意思是
dTabs[i]
var myNodes=dTabs[i].ChildNodes

function dFixIt() {

    $('#mainContent img').each(function(idx, item) {
        var tImgs = item.src;
        if (tImgs.indexOf("-ds.") > 0) {
            $(this).parent().after('Here is a message about the image');
        }

    });

}
这将定位ID为“mainContent”的元素(如果是图像)中的任何内容。然后它将确定字符串“-ds.”是否在图像名称中的任何位置。所以“MyFriends ds.jpg”会得到一些补充

如果图像位于链接内,“.parent()”会在添加消息之前跳过该链接外的脚本。这样可以防止添加的内容成为链接

如果图像不在链接内,请从字符串中删除“.parent()”,它应该直接在图像后添加消息