小编Cru*_*ser的帖子

为什么此字符串会更改为完整元素选择器?

我有一个动态生成的元素:

// gathers the name of the file the user is uploading
let fileName = escape(e.target.files[0].name).slice(0,9);

let icon = $(` // this extra space is for readability on SO
        <div class="fileImage" id="${fileName}">
           <div class="glyph-stack">
              <i class="glyphicon glyphicon-file file-icon"></i>
              <i class="glyphicon glyphicon-file file-icon overlay"></i>
              <i class="glyphicon glyphicon-remove file-icon" onclick="removeFile(${fileName})"></i>
        </div>
        <span class="file-title">${fileName}</span>
        </div>`);
Run Code Online (Sandbox Code Playgroud)

当我将元素附加到DOM并检查它时,$ {fileName}的所有实例都会正确显示.如果上传了一个名为freeicons.zip的文件,那么在放置$ {fileName}的任何地方都会出现"freeicons".但是,一旦在onclick处理程序中调用removeFile函数:

 function removeFile(fileName){ 
    $('#'+fileName).remove();
 }
Run Code Online (Sandbox Code Playgroud)

函数内的变量fileName不再等于"freeicons".当我检查它时,变量被设置为div#freeicons.fileImage,它是整个元素的选择器.

如果在onclick处理程序中调用removeFile(),我将$ {fileName}包装在单引号中:

`onclick="removeFile('${fileName}')"`
Run Code Online (Sandbox Code Playgroud)

我在removeFile()中得到了字符串"freeicons".

为什么在第一种情况下它会用元素选择器替换字符串?这是JQuery在创建这个小元素树时所做的事情吗?

javascript jquery

2
推荐指数
1
解决办法
58
查看次数

从阵列中随机选择一段音频,无法弄清楚我哪里出错了

代码如下:

var audio1 = new Audio("sounds/sleighride.mp3");

var audio2 = new Audio("sounds/letitsnow.mp3");


var audio3 = new Audio("sounds/comingtotown.mp3");

var array = ["audio1", "audio2", "audio3"]


function soundrandom (){ 
    var songrandom = array[Math.floor(Math.random() * array.length)]; 
    songrandom.play();
}

soundrandom();
Run Code Online (Sandbox Code Playgroud)

答案可能很明显,但让我有点难过,错误是"soundrandom.play();不是一个函数".

javascript arrays random html5 adobe

0
推荐指数
1
解决办法
54
查看次数

标签 统计

javascript ×2

adobe ×1

arrays ×1

html5 ×1

jquery ×1

random ×1