0

pコンテンツを削除するボタンとともに属性を動的に作成するコードをjavascriptで作成しました。この関数removeValueは Chrome と Firefox では正常に動作しますが、IE では動作しません。また、setAttribute('style','')IEでも動作しません。最後に、値を別のページwindow.locationに送信undefinedすると、テキストの代わりに送信されます。

Firefox と Chrome ではすべて正常に動作しているようですが、IE では動作しません (現在 IE 7 を使用しています)。この問題を解決するにはどうすればよいですか?

コード:

function removeValue(ob)
{
    ob.parentNode.parentNode.removeChild(ob.parentNode);
}
function throwval(obj)
{
    var sent_id = obj.id;     //get id of the button 
    var v = document.getElementById(sent_id).value;
    var newp = document.createElement("p");     //create a new <p> tag
    var text = document.createTextNode(v);
    var buttonnode= document.createElement('input');
    buttonnode.setAttribute('type','button');
    buttonnode.setAttribute('name','del');
    buttonnode.setAttribute('value','Remove');
    buttonnode.setAttribute('style','background-color: Transparent;width: 125;color: blue;border:0');
    buttonnode.setAttribute('onclick','removeValue(this)');
    newp.appendChild(text);
    newp.appendChild(buttonnode);
    document.getElementById("getselected").appendChild(newp);    //append the new <p> tag in the div    
}
function sendvalues()
{
    var div_val = document.getElementById("getselected");
    if(!div_val.getElementsByTagName("p").length)
    {
        alert("Select a value");
    }
    else
    {
        //get seperate values of the paragraph inside div
        var str="|";
        for (i=0; i < div_val.getElementsByTagName("p").length; i++)
        {
            var paragraphs = div_val.getElementsByTagName("p");
            if(!paragraphs.item(i).textContent)
        {
            var pvalues = paragraphs.item(i).innerText;
        }
        else 
        {
            var pvalues = paragraphs.item(i).textContent;
        }
            //var sendpvalues = "products=" + pvalues;
            // alert(pvalues);

            str = str + pvalues + "|";
            //alert (str);
            //ajaxOb.send(sendpvalues);

        }   
        // alert(str);
        window.location="send_data.php?str="+str;
    }
}

IE が ' innerText' をサポートし、firefox が ' ' をサポートしていることがわかりましたtextContent。「 」ステートメントundefinedを使用して問題を修正しました。ifコードが更新されました

4

1 に答える 1

0

IE には、setAttribute関数とイベント ハンドラーに問題があります。(こちらをお読みください。)onclickに加えてプロパティを使用しますsetAttribute

buttonnode.setAttribute('onclick','removeValue(this)');
buttonnode.onclick = function() { removeValue(buttonnode); };
于 2013-04-14T14:44:03.573 に答える