javascript脚本innerhtml

时间:2010-05-14 11:14:41

标签: javascript innerhtml

嗨我想调用传递图像的函数changeDivHTML

   <a href="javascript:void(0)" onclick="changeDivHTML(<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'>)">

并且该函数将此图像添加到特定id的div。

功能就是这个

 <script language="javascript" type="text/javascript">
                    function changeDivHTML(item)
                    {
                    alert(item);
                        previousInnerHTML = 'item';
                        alert(previousInnerHTML);
                        document.getElementById('image').innerHTML = previousInnerHTML;
                     }
</script>

但是当我点击图片时,浏览器会显示javascript错误。

Error: invalid XML attribute value
Source File: http://xxx.xxx.xxx.xxx:xxx/product_info.php?products_id=31
Line: 1, Column: 23
Source Code:
changeDivHTML(<img src=images/products/top/product_big1.jpg>)

plsease帮助您解决此错误。

5 个答案:

答案 0 :(得分:2)

changeDivHTML要求您将字符串传递给它,但是您忘记了导致错误的分隔符。

<a href="javascript:void(0)" onclick="changeDivHTML('<img src=\''.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'\'>')">

答案 1 :(得分:2)

首先,你必须传递一个字符串,而不是标签!而且,你必须在最后关闭它。

<a href="javascript:void(0)" onclick="changeDivHTML(\"<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'/>\")">

其次,你应该改变这样的脚本,这样就可以得到你想要的图像标记:

<script language="javascript" type="text/javascript">
                    function changeDivHTML(item)
                    {                        
                        previousInnerHTML = item;
                        document.getElementById('image').innerHTML = previousInnerHTML;
                     }
</script>
希望我能帮到你。 =)

答案 2 :(得分:1)

尝试将参数作为字符串传递,如下所示

<a href="javascript:void(0)" onclick="changeDivHTML('<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'>')">

不要忘记处理转义字符。

答案 3 :(得分:0)

传递一个字符串(即用引号标记的东西),而不是一些无效的E4X

答案 4 :(得分:0)

我猜你在点击链接时尝试将DIV的内部HTML更改为其他内容。引用文档中已有的其他HTML(如果最初必须隐藏,可能隐藏style="display:none")会更容易。这是一个例子:

<div id="div1">Here's div1 <img src="1.png"/></div>
<div id="div2">Here's div2.</div>
<a href="#" onclick="changeDivHtml('div1', 'div2')">Click to Change</a>
<script language="javascript">
  function changeDivHtml(source, target) {
    var elSource = document.getElementById(source)
      , elTarget = document.getElementById(target);
    elTarget.innerHTML = elSource.innerHTML;
  }
</script>
相关问题