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