javascript - 将字符串传递给innerHTML

时间:2014-07-15 02:52:26

标签: 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(harv1244,apples)">dummy</td>

这个onmouseout函数有效(当然,它打印'crop',我想传入一个字符串,就像我上面尝试的那样):

function lookup(harvid) {harvid.innerHTML="crop";}

<td id="harv1244" onmouseover="lookdown(harv1244)"
onmouseout="lookup(harv1244)">dummy</td>

1 个答案:

答案 0 :(得分:3)

您的代码存在以下问题:

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

  • harvid需要是字符串或节点元素。但你也没有传入。假设您希望它是一个字符串,那么您需要使用getElementById找到DOM元素。

这是一个有效的解决方案:

使用Javascript:

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

function lookup(harvid,crop) {
    document.getElementById(harvid).innerHTML=crop;
}

HTML:

<div id="harv1244" onmouseover="lookdown('harv1244')"
onmouseout="lookup('harv1244','apples')">
    dummy
</div>

这里是相关的小提琴:http://jsfiddle.net/pQM37/

编辑:

为了使这段代码更清晰,你可以将元素本身传递给函数,而不是id,如下所示:

使用Javascript:

function lookdown(ele) { 
    ele.innerHTML="See details below"; 
}

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

HTML:

<div id="harv1244" onmouseover="lookdown(this)"
onmouseout="lookup(this,'apples')">
    dummy
</div>

小提琴:http://jsfiddle.net/pQM37/1/