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
コードが更新されました