0

我想在 onclick 时更改我的表单的某些输入的类,该类具有 class='mypost_title'。

我试过了,但它不起作用

<a href='' onclick='popup_mypost(e)'>change me</a>
<a href='' id=edit-href onclick='popup_mypost(e)'>back me</a>

<script>
    function popup_mypost(e) 
    {
        var inputs = document.getElementsByClassName("mypost_title");
        for(var i = 0; i < inputs.length; i++) 
            {
            inputs[i].className = "change";
            }

        var edit_href = document.getElementById("edit-href");
        edit_href.onclick = function()
        {
            var inputs = document.getElementsByClassName("change");
            for(var i = 0; i < inputs.length; i++) 
                {
                inputs[i].className = "mypost_title";
                }
        }
    }
</script>
4

3 回答 3

3

该方法是getElementsByClassName-即,您错过了一个s

文档:https ://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName

于 2012-08-06T10:15:34.813 回答
1

对于 jQuery 方法,请参阅下面的代码。我个人觉得这更容易阅读和理解。这也将完全跨浏览器工作!

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>

$(document).ready(function() {
    $(".mypost_title").each(function() {
        $(this).addClass("change");
    });
});

</script>

我已经快速检查了跨浏览器的兼容性,getElementsByClassName结果非常令人惊讶。IE8及以下不支持!请在此处查看此表进行测试


编辑

我猜测你在这里寻找什么。这是我的解释:

当单击这些 div 之一时,您想将类添加到单击的类并从所有其他类中change删除该类吗?change

在这种情况下,你会这样做:

//This focus event will fire when the user "focuses" on an input
$(".mypost_title").focus(function() {
    $(this).removeClass("mypost_title");
    $(this).addClass("change");
});

//This blur event will fire when the user clicks outside the input, or tabs out etc
$(".mypost_title").blur(function() {
    $(this).removeClass("change");
    $(this).addClass("mypost_title");
});
于 2012-08-06T10:18:09.740 回答
0

更改此行并尝试:

var inputs = document.getElementsByClassName("mypost_title");

于 2012-08-06T10:15:54.733 回答