html js append和getElementByName

时间:2017-04-24 22:43:47

标签: javascript jquery

为什么我不能getElementByName?

<form class="form" action="#">
                        <p class="EmptySlot" hidden>
                            <input name="characters" type="radio" id="empty" disabled="disabled"/>
                            <label for="empty">Пустой слот</label>
                        </p>
                    </form>

然后:

$(".form").append('\
        <p>\
            <input name="character" type="radio" id="' + notformatname + '" value="' + notformatname + '"/>\
            <label for="' + notformatname + '" id="charlabel">' + formatname + '</label>\
        </p>');

它不起作用:

var radios = document.getElementsByName('character');

2 个答案:

答案 0 :(得分:0)

该方法将返回一个集合,而不是单个元素。你可以试试......

$(".form")[0].append('\
        <p>\
            <input name="character" type="radio" id="' + notformatname + '" value="' + notformatname + '"/>\
            <label for="' + notformatname + '" id="charlabel">' + formatname + '</label>\
        </p>');

应该获得属于“表单”类的第一个表单。

第二个应该有用,但请记住“无线电”也是一个集合。

答案 1 :(得分:0)

如果多个元素的名称为“character”,则

.getElementsByName可能会返回多个元素。

要获取返回元素列表中的第一项,请尝试:

var radios = document.getElementsByName('character')[0];