javascript-将字符串传递给innerHTML

javascript-将字符串传递给innerHTML,javascript,parameter-passing,innerhtml,Javascript,Parameter Passing,Innerhtml,此onmouseover“lookdown”函数起作用,但onmouseout“lookup”函数不起作用: function lookdown(harvid) { harvid.innerHTML="See details below"; } function lookup(harvid,crop) {harvid.innerHTML=crop;} <td id="harv1244" onmouseover="lookdown(harv1244)" onmouseout="lookup

此onmouseover“lookdown”函数起作用,但onmouseout“lookup”函数不起作用:

function lookdown(harvid) { harvid.innerHTML="See details below"; }
function lookup(harvid,crop) {harvid.innerHTML=crop;}

<td id="harv1244" onmouseover="lookdown(harv1244)"
onmouseout="lookup(harv1244,apples)">dummy</td>
function lookdown(harvid){harvid.innerHTML=“参见下面的详细信息”}
函数查找(harvid,crop){harvid.innerHTML=crop;}
笨蛋
这个onmouseout函数可以工作(当然,它会打印'crop',我想像上面尝试的那样传入一个字符串):

函数查找(harvid){harvid.innerHTML=“裁剪”}
笨蛋

您的代码有几个问题:

  • 您正在将未声明的变量传递到函数中
    apples
    harvid
    是变量,而不是字符串,因此未定义。您需要将这些值放在引号中以使它们成为字符串

  • harvid
    必须是字符串或节点元素。但你也不是路过。假设希望它是一个字符串,那么需要使用
    getElementById
    查找DOM元素

以下是一个可行的解决方案:

Javascript:

function lookdown(harvid) { 
    document.getElementById(harvid).innerHTML="See details below"; 
}

function lookup(harvid,crop) {
    document.getElementById(harvid).innerHTML=crop;
}
function lookdown(ele) { 
    ele.innerHTML="See details below"; 
}

function lookup(ele,crop) {
    ele.innerHTML=crop;
}
HTML:

HTML:


笨蛋

小提琴手:

这里的苹果是什么?真的要避免这个。您依赖于浏览器为ID创建全局变量,而内联事件是错误的来源。在JavaScript中添加事件,从DOM中查询元素,然后使用
addEventListener
Apple
不是字符串,而是变量。它有字符串值吗?Mritunjay,苹果是我传递给lookup()函数的单词,我想用innerHTML.elclans插入它,我不知道这是什么意思。太好了,Steve。清晰、两种解决方案和一个工作示例。再好不过了。谢谢
<div id="harv1244" onmouseover="lookdown('harv1244')"
onmouseout="lookup('harv1244','apples')">
    dummy
</div>
function lookdown(ele) { 
    ele.innerHTML="See details below"; 
}

function lookup(ele,crop) {
    ele.innerHTML=crop;
}
<div id="harv1244" onmouseover="lookdown(this)"
onmouseout="lookup(this,'apples')">
    dummy
</div>