2

tab1と呼ばれるdivがあります。tab1 div 内には、多くの入力 (フィールドとラジオ ボタン) があります。次のようなinnerHTMLを取得しています:

document.getElementById("tab1").innerHTML;

コード例:

<div id="tab1">
    <input type="text" id="text1" />
</div>

それは機能しますが、たとえば text1 入力に値を入力した場合、それは innerHTML にはありません。入力された値を含む innerHTML を取得するにはどうすればよいですか? それはまったく可能ですか?

ありがとう!

4

3 に答える 3

3
<div id="tab1">
    <input type="text" id="text1"
    onkeyup="javascript:this.setAttribute("value", this.value);"/>
</div>

これにより、div の innerHTML で値が得られます。

document.getElementById("tab1").innerHTML;

それに応じてイベントを変更できます。設定しましたonKeyUp

于 2013-04-02T16:33:19.300 に答える
1

入力/ラジオの値を取得したい場合は、jQuery を使用して実行できます。これ
var Inputs = $("div#tab1 input, div#tab1 radio");
で、変数 Inputs にすべての入力とラジオの配列ができました。次に、次のように値にアクセスできます:次のようInputs[0].value
な単純な JavaScript を使用する場合:
var Inputs = document.getElementById("tab1").getElementsByTagName('input'); You can now access them like:Inputs[0 and].value Radios[0].value`
@edit
ありがとうございます。これらの間違いを修正しました。

于 2013-01-16T11:31:39.893 に答える
0

テキスト ボックスに何かを入力すると、innerHTML はどのように表示されますか? のように見えますか

    <input type="text" id="text1" value="your_value" />?

もしそうなら、ここにあなたが望むものを返す簡単な関数があります:

    function getInnerHtml() {
        var div = document.getElementById("tab1");
        var childNodes = div.childNodes;
        var innerHtml = "";
        for (var i = 0; i < childNodes.length; i++) {
            var node = childNodes[i];
            if (node.nodeType == 1) {
                if (node.getAttribute("type") == "text") {
                    if (node.value != "") {  
                        //! This will change the original outerHTML of the textbox
                        //If you don't want to change it, you can get outerHTML first, and replace it with "value='your_value'" 
                        node.setAttribute("value", node.value);
                    }
                    innerHtml += node.outerHTML;
                } else if (node.getAttribute("type") == "radio") {
                    innerHtml += node.outerHTML;
                }
            }
        }
    }  

お役に立てば幸いです。

于 2013-01-16T14:20:30.147 に答える