AJAX innerHTML。更改链接。可能是一个“或”问题

时间:2009-02-26 22:47:35

标签: javascript html ajax

我想要的是一个超链接更多点击时运行一些javascript函数,并更改为超链接更少。继承人我所拥有的不起作用。它运行ajaxpage函数很好,但不是更多。我认为我在javascript中使用了“和”。

<script type="text/javascript">
function moreToLess(){
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=20', 'tagcloud');lessToMore()" >Less</a>';
}
function lessToMore(){
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a>';
}
</script>
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a></span>

5 个答案:

答案 0 :(得分:3)

是的,只是在您的javascript中的双引号内转义单引号.. ala \'

<script type="text/javascript">
    function moreToLess(){
        document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>';
    }
    function lessToMore(){
        document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=50\', \'tagcloud\');moreToLess()" >More</a>';
    }
</script>
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a></span>

答案 1 :(得分:3)

您必须转义引号内的'个字符:

'<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>'

答案 2 :(得分:3)

我不确定是否还有其他错误,但我认为你需要摆脱其他单引号内的单引号:

document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>\';

答案 3 :(得分:3)

这确实是一个引用问题,您可以使用\ character

来转义'字符'
<script type="text/javascript">
function moreToLess(){
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>';
}
function lessToMore(){
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=50\', \'tagcloud\');moreToLess()" >More</a>';
}
</script>
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()

答案 4 :(得分:0)

这种混乱是为什么innerHTML并不总是一个胜利。你已经嵌入了嵌入在更多HTML中的JavaScript字符串文字嵌入的HTML中的JavaScript,难怪你很困惑。

这是一个更简单的版本,基于通过DOM方法切换链接。

<a id="tagLinks" href="/TagCloud?id=EDI_0009&amp;count=50">more...</a>

<script type="text/javascript">
    var ismore= false;
    document.getElementById('tagLinks').onclick= function() {
        ajaxpage(this.href);
        ismore= !ismore;
        this.href= '/TagCloud?id=EDI_0009&count='+(ismore? 20 : 50);
        this.firstChild.data= ismore? 'less...' : 'more...';
        return false;
    };
</script>