
No.1ベストアンサー
- 回答日時:
DocumentにはinnerHTMLはないっぽい
ルート要素などのElementにはあるようだけど。
#innerHTMLは元々Microsoftの独自拡張だと思っているので,MSDNの資料を参考にした。
http://msdn.microsoft.com/en-us/library/aa752641 …
http://msdn.microsoft.com/en-us/library/aa752574 …
http://msdn.microsoft.com/en-us/library/aa752541 …
http://msdn.microsoft.com/en-us/library/aa752529 …
http://msdn.microsoft.com/en-us/library/aa752514 …
http://msdn.microsoft.com/en-us/library/cc288669 …
http://msdn.microsoft.com/en-us/library/aa752298 …
#実装されてないみたいだけどHTML 5の仕様見ると何故かDocumentにinnerHTMLがあるんだよね。
http://www.w3.org/html/wg/html5/#documents0
===================
個人的にはDOM 3 Load And Saveを使って
createLSSerializer
とかしてほしいんだけどね。実装されているのOperaだけだけど
http://www.w3.org/TR/DOM-Level-3-LS/idl-definiti …
==
MozillaはあまりDOM 3 LSの実装に乗り気じゃないっぽい。独自実装あるけど。
http://developer.mozilla.org/En/XMLSerializer
IEは不明。
No.4
- 回答日時:
う~ん。
。。responseXMLでinnerHTMLは基本的に使わないので詳しく知らなかったんですが。。。
HTMLでのDOMとXMLでのDOMは別物と考えた方が良さそうですね。
もしかしたらinnerHTML自体存在しないかも知れません。
var doc=document.createElement('div');
doc.innerHTML=req.responseText;
として、docから取り出すとか。。。
document.createDocumentFragment()の方が適していると思うんですが、その後の処理が出来ない(getElementsByTagNameとかinnerHTMLがない)ので。
以下のどれかを使う(ブラウザ依存)の方がいいのかも知れませんが、結局innerHTMLが入ってないかも知れません。
ActiveXObject('Microsoft.XMLDOM')
DOMParser()
document.implementation.createDocument('','',null);
いずれにしても面倒くさいというか、変な処理になりそうです。
別件になりますが、このように改行してある場合
<country>
<testtag testattr="1">
国1
</testtag>
</country>
countryエレメントのfirstChildがテキストノード(改行コードまたはそれを半角スペースに変換した物)になるかもしれません。
HTMLでは「開始タグ直後の改行コードと、終了タグ直前の改行コードは無視する」というルールがあるのですが、そのルールが適用されていないブラウザが有るようです。
http://www.w3.org/TR/html401/appendix/notes.html …
> This applies to all HTML elements without exception
注意書きに有るとおり文法上は、ブロック要素の開始タグ、終了タグにも適用されます。
XMLでこういうルールがあるかどうかわかりませんが、
私はfirstChildを使わずに、childNodesを順番に調べて最初に出てきたnodeTypeが1のノードを取得するという、
非常に面倒くさい方法を取っています。
ためしに
<country><testtag testattr="1">
国1
</testtag>
</country>
このように書くとcountry[0].firstChild.firstChild.nodeValueで「国1」が取れました。
ただしescape()すると、前後に改行コードが入っています。(Win Fx2.0)
function GetFirstChild(elm){
for(var i=0;i<elm.length;i++)
if(elm[i].nodeType==1)
return elm[i];
return null;
}
ご参考まで。
No.3
- 回答日時:
「ajaxで読み込んだDOM」とは何ですか?
xmlデータのことかも知れませんが、何なのかわからないので、出来るとも出来ないとも言えません。
どの様に書かれたのかわからないので、もし出来るとしても何が間違っているのかわかりません。
書かれたソースをお願いします。
この回答への補足
****下記HTMLです。****
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="/lib/ajax.js"></script>
<script type="text/javascript">
<!--
// 指定したURLを非同期でリクエスト
function getFile( url )
{
sendRequest( url, writeData, 'GET', '' );
}
// レスポンスデータを表示
function writeData( req )
{
// <result>要素を参照
var result = req.responseXML.getElementsByTagName('result');
// 出力先のトップ要素となるtable要素
var table = document.getElementById("result");
// tableの内容クリア
var child = table.childNodes;
var length = child.length;
for(var i = 0; i < length; i++) {
table.removeChild(child[0]);
}
// 各行を出力
for(var i = 0; i < result.length; i++) {
var trElem = document.createElement('tr');
table.appendChild(trElem);
// <country>要素を出力
var country = result[i].getElementsByTagName('country');
alert(country[0].innerHTML);
var text = document.createTextNode(country[0].firstChild.firstChild.nodeValue);
var tdElem = document.createElement('td');
tdElem.appendChild(text);
trElem.appendChild(tdElem);
}
}
//-->
</script>
</head>
<body>
<div>
<input type="button" value="データ読込" onclick="getFile('test.xml')"/>
</div>
<table>
<thead><tr><th>見出し1</th></tr></thead>
<tbody id="result"></tbody>
</table>
</body>
</html>
****以下取得するTMLです。****
<?xml version="1.0" encoding="utf-8"?>
<results>
<result>
<country>
<testtag testattr="1">
国1
</testtag>
</country>
</result>
<result>
<country>
<testtag testattr="1">
国2
</testtag>
</country>
</result>
</results>
javascriptの中でノードに対して
alert(country[0].innerHTML);
としてみたのですが、駄目でした。
宜しくお願いします。
No.2
- 回答日時:
/* 自分がIE用に検証に使ったソース */
str = "a";
relativeURI = "Q4282941-2.xml"
var xmlhttprequest = new XMLHttpRequest();
if (relativeURI.indexOf("?") < 0){
relativeURI = relativeURI + "?";
}
xmlhttprequest.open('GET', relativeURI + ('X' + (new Date()).getMilliseconds().toString()) + '=1' , false);
xmlhttprequest.send(null);
if(xmlhttprequest.status !== 200){
throw new Error("HTTP Status could not be 200:");
}
alert(xmlhttprequest.responseXML.getElementsByTagName("html")[0].xml)
/*
FirefoxやOperaやSafariで発生したトラブル解決,で終わりだと思ってたら
IEでダメだった。やる気しないが,一応追調査してみた。
IXMLDOMNodeっぽいかも。ただし,これはread-only
http://msdn.microsoft.com/en-us/library/ms761386 …
*/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 写真・ビデオ メールで送って来たOneDriveの写真を、すへての写真を表示できない 1 2023/05/21 16:25
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- PDF PDFの出力時のファイル名を消したい 3 2022/09/05 01:16
- JavaScript Javascriptを使ってQRコード読み取り、取得した情報をPOSTしたいと思っています。 1 2023/04/28 15:18
- 教育ソフト・学習ソフト vbsで分割した値をそれぞれの変数に 1 2022/10/17 19:52
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- その他(IT・Webサービス) 知り合いがバンドをしており、CDを作成したものをもらいました。 そのジャケットの表紙にQRコードがあ 5 2022/10/04 22:08
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- ドライブ・ストレージ 外付けCDドライブだけ音楽CDが読み込まない 3 2023/08/18 21:28
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
jQueryでシンセサイザーを作っ...
-
HTMLでサブフレームから親のス...
-
Q&A掲示板の入力フォームに文字...
-
【JS】selectでchangeした時の...
-
読み込んだQRコードをフォーム...
-
変数宣言と初期値代入の場所に...
-
jQueryでのレスポンシブが綺麗...
-
CookieをWebStoeageに変える
-
Outlookのアカウントがあるとメ...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iText セル内での自動改行について
-
アコーディオンメニューにする...
-
Aタグのhrefの値を取得したいの...
-
こんばんは。 メガメニューを今...
-
jtreeのノードを右クリックで選...
-
或る文字列の文字数が一定数以...
-
jQueryについて
-
javaがわかりません。。。
-
鍵盤アプリで、スマホの画面に...
-
URL+URN=URI と習ったのですが...
-
Listでintの最大値を超える要素...
-
ノードの削除2
-
Preorder Tree Walkとは
-
innerTextは標準化されているの...
-
JTextAreaを改行コードを直接書...
-
(再質問)エクセルのマクロボ...
-
collection型を引数にしたファ...
-
コンソール画面のクリアの方法
-
mとnを入力 mからnまでを加算し...
-
Google SketchUpのポータブル版...
おすすめ情報