0
<input type="text" id="motto" name="motto" value="">

そんなに長く書く代わりに、何かをいただけnameid="motto"ますか?
javascript でこれを行う方法は? 私はこれまでphpの関数でこれを行ってきましたが、利用可能なjavascriptソリューションがあるかどうかに興味があります.

4

3 に答える 3

3

nameidHTML 仕様では、そのようなパラメーターは定義されていません。そのため、javascript を使用してそれを実現することはできますが、そもそも HTML が壊れてしまいます。その方法をお勧めしませんが、私の推奨に反して壊れたマークアップをレンダリングすることにした場合は、jQuery で次のことができます。

$(function() {
    $('input').each(function() {
        var nameid = $(this).attr('nameid');
        $(this).attr('id', nameid).attr('name', nameid);
        $(this).removeAttr('nameid');
    });
});
于 2013-02-24T16:53:40.833 に答える
1

HTMLにnameid属性があり、ページの読み込み時にJavaScriptで修正するということですか?

Array.prototype.forEach.call( // for each
    document.querySelectorAll(*[nameid]), // element with this attribute
    function (e) { // do
        var v = e.getAttribute('nameid'); // get the value
        e.setAttribute('id', v); // set id
        e.setAttribute('name', v); // set name
        e.removeAttribute('nameid'); // remove it
    }
);

このnameid属性を持つ HTML は無効になることに注意してください。

于 2013-02-24T16:54:45.993 に答える
0

ID を設定するだけで、これを JavaScript に入れて名前を同じに設定できます。

$('input[id]').each(function() { $(this).attr("name", this.id); });
于 2013-02-24T16:55:47.177 に答える