Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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无效?_Javascript_Jquery - Fatal编程技术网

为什么我的Javascript无效?

为什么我的Javascript无效?,javascript,jquery,Javascript,Jquery,我有一个ID为“adpictureholder”的div,我可以动态地向其中添加(或删除)图像。 在表单提交中,我想获取该DIV中所有这些图像的SRC值,并将它们放入一个ID为“piclinkslisttosubmit”的隐藏输入的值中问题是,我当前的Javascript并没有像有语法错误一样工作,但我不知道在哪里

我有一个ID为“adpictureholder”的div,我可以动态地向其中添加(或删除)图像。
在表单提交中,我想获取该DIV中所有这些图像的SRC值,并将它们放入一个ID为“piclinkslisttosubmit”的隐藏输入的值中
问题是,我当前的Javascript并没有像有语法错误一样工作,但我不知道在哪里<谁能快看一下吗

function copyonsubmit(){
    var strump1 = '';
    var i=0;
    var endi = document.getElementById('adpictureholder').childNodes[].length - 1;
    var images = document.getElementById('adpictureholder').childNodes[];
    for (i=0;i<=endi;i++)
    {
        strump1 = strump1 + '|' + images[i].src;
    } 
    document.getElementById('piclinkslisttosubmit').value = strump1;
}   
函数copyonsubmit(){
var strump1='';
var i=0;
var endi=document.getElementById('adpictureholder').childNodes[].length-1;
var images=document.getElementById('adpictureholder').childNodes[];

对于(i=0;i将
childNodes[]
更改为仅
childNodes


您不需要通过添加括号来指定引用的变量是数组。

首先,您不需要在childNodes之后使用
[]
。这会导致错误

您还忘记了childNodes包含文本节点,无法正常工作,因为它们并不都包含src属性。我在下面的示例中更正了这一点:

function copyonsubmit() {
    var str = '';
    var textbox = document.getElementById('piclinkslisttosubmit');
    var i = 0;
    var images = document.getElementById('adpictureholder').childNodes;
    var numImages = images.length - 1;
    var src = "";
    for (i = 0; i < numImages; i++) {
        if (images[i].tagName === "IMG") {
            str += images[i].src + '|';
        }
    }
    str = str.slice(0, -1); // cut off the final |
    textbox.value = str;
}
第三,确保检查控制台是否有错误。当我在JSFIDLE上运行这段代码时,很明显它有问题


最后,您到底想做什么?

childNodes[]
更改为
childNodes
,其余的看起来很好

试试看

函数copyonsubmit(){
var strump1='';
var i=0;
var endi=document.getElementById('adpictureholder').childNodes.length-1;
var images=document.getElementById('adpictureholder').childNodes;

对于(i=0;i在读取属性值时不应使用
[]

var images = document.getElementById('adpictureholder').childNodes;
然后可以从数组中获取长度,而不是再次读取属性:

var endi = images.length - 1;

您的javascript无效,因为您一直在放置
childNodes[]
您可以通过将
childNodes[]
简单地替换为
childNodes

function copyonsubmit(){
    var strump1 = '';
    var i=0;
    var endi = document.getElementById('adpictureholder').childNodes.length - 1;
    var images = document.getElementById('adpictureholder').childNodes;
    for (i=0;i<=endi;i++)
    {
        strump1 = strump1 + '|' + images[i].src;
    } 
    document.getElementById('piclinkslisttosubmit').value = strump1;
} ​
函数copyonsubmit(){
var strump1='';
var i=0;
var endi=document.getElementById('adpictureholder').childNodes.length-1;
var images=document.getElementById('adpictureholder').childNodes;

对于(i=0;i您说您正在使用jQuery,但您向我们展示了普通的Javascript。我冒昧地将您的代码转换为jQuery并进行了一些清理。不过,其他人已经发现了您的问题

function copyonsubmit() {
    var strump1 = '';
    var images = $("#adpictureholder")[0].childNodes;
    for (var i = 0; i < images.length; i++) {
        strump1 += '|' + images[i].src;
    }
    $('#piclinkslisttosubmit').val(strump1);
}​
函数copyonsubmit(){
var strump1='';
var images=$(“#adpictureholder”)[0]。子节点;
对于(var i=0;i
只是长度上的一个输入错误=>
var endi=images.length-1;
function copyonsubmit(){
    var strump1 = '';
    var i=0;
    var endi = document.getElementById('adpictureholder').childNodes.length - 1;
    var images = document.getElementById('adpictureholder').childNodes;
    for (i=0;i<=endi;i++)
    {
        strump1 = strump1 + '|' + images[i].src;
    } 
    document.getElementById('piclinkslisttosubmit').value = strump1;
} ​
function copyonsubmit() {
    var strump1 = '';
    var images = $("#adpictureholder")[0].childNodes;
    for (var i = 0; i < images.length; i++) {
        strump1 += '|' + images[i].src;
    }
    $('#piclinkslisttosubmit').val(strump1);
}​