通过javascript为该值添加引号

时间:2011-08-26 09:28:51

标签: javascript

我希望以下文字使用JavaScript显示为“测试测试”。

<body>
    <blockquote>test test test</blockquote>
</body>

我有以下代码,但它不起作用

<blockquote window.onload = function test()> test test test</blockquote>
<script type="text/javascript">
function test(){
    var a = document.getElementsByTagName(blockquote).value
    return "a";
}
</script>

3 个答案:

答案 0 :(得分:1)

其中一个适合您:

当所有HTML元素都在DOM中时,页面上的所有块引用

<blockquote>test test test</blockquote>
<blockquote>test2 test2 test2</blockquote>
<script type="text/javascript">
    window.onload = function(){
        var bqs = document.getElementsByTagName('blockquote');
        for(var i = 0; i < bqs.length; i++)
            bqs[i].innerHTML = '"'+bqs[i].innerHTML+'"';
    }
</script>
<blockquote>test3 test3 test3</blockquote>

Example



脚本上方页面上的所有块引用

<blockquote>test test test</blockquote>
<blockquote>test2 test2 test2</blockquote>
<script type="text/javascript">
    var bqs = document.getElementsByTagName('blockquote');
    for(var i = 0; i < bqs.length; i++)
        bqs[i].innerHTML = '"'+bqs[i].innerHTML+'"';
</script>
<blockquote>test3 test3 test3</blockquote>

Example



特定的blockquote

<blockquote id="wrapinquotes">test test test</blockquote>
<blockquote>test2 test2 test2</blockquote>
<script type="text/javascript">
    var el = document.getElementById('wrapinquotes');
    el.innerHTML = '"'+el.innerHTML+'"';
</script>
<blockquote>test3 test3 test3</blockquote>

Example

答案 1 :(得分:0)

不应该是

<script type="text/javascript">
function test(){
    var element = document.getElementsByTagName("blockquote")[0];  //getElementsByTagName returns an array
    var attr = document.createAttribute('value');

     attr.nodeValue = element .value;  //code to set your value.. you need to escape double quotes..

     element .setAttributeNode(attr);
}

</script>

<blockquote window.onload = function test()> test test test</blockquote>

如果您尝试更改标签之间的文本,则需要使用innerHTML属性。

function test(){
        var element = document.getElementsByTagName("blockquote");
        element.innetHTML='"'+element[0].innerHTML+'"';
    }

答案 2 :(得分:0)

您的代码无法工作的原因是因为getElementsByTagName返回所有标记的列表,而不仅仅是一个标记。所以你需要操作列表(数组)。

我发现Paulpro的回答很有帮助,但没有解释,所以这可能对某人有帮助。

 var bqs = document.getElementsByTagName('blockquote');

获取所有blockquote标签的列表。将该列表称为bqs

for(var i = 0; i < bqs.length; i++)

浏览列表bqs一次。当你走下那个列表时:

bqs[i].innerHTML = '"'+bqs[i].innerHTML+'"';

对于每个列表项执行此代码。

此代码有助于尝试在列表上执行,以执行列表中的所有项目。可以更改最后一行以对列表执行其他操作,例如: bqs[i].style.display = 'none';