私は jQuery にかなり精通していますが、ほとんどの人が知っているように、jQuery とバニラ JavaScript には大きな違いがあります。私はバニラ JavaScript をより深く理解しようとしていますが、いくつかのコードといくつかの質問があります。
以下のコードでは、Writeboard.com ( http://37signals.com/writeboard-retiredは廃止されました) からエクスポート機能を介して生成された HTML を取得しようとしています。基本的に、私はいくつかの有用な練習を行い、特定のコンテンツを見つけるスクリプトを作成しようとしています。たとえば<li>//Title:...</li>
、それを JSON 配列にプッシュし、それを XML として解析します。最終的な目標は、これらすべてを XML として取得して移植性を高めることです (従来の Writeboard.com ボードから離れて、作業中の Web アプリに直接インポートすることもできます)。
だから、私には行く方法があり、私のためにコードを書いてくれる人を探しているわけではありませんが、いくつかのことに気を配ろうとしています:
TargetList
ユーザーが次のように配列を渡して、検索される特別な「キー」(値) をスクリプトに伝えることができるコールバックを作成しようとしています。親<li>
のコンテンツは抽出され、JSON 配列に保存されるため、<li>
含まれている要素を破棄して XML 属性 (例:<title>
) で代わりにラップできます。JS で配列を設定するための適切な構文についての私の理解は
var targetList = [];
、スクリプトの側面を検索、検索、および保存することをループするときに後で入力できる空の配列を作成することです。これを間違って設定したと思いますが、その理由はわかりません。- また、スクリプトの後半で関数を呼び出すことができない理由についても混乱し
convertToXML(['//Title:','//Prerequisite:','//Description:']);
ています。エラーが発生し、その理由がわかりません。私が得ていたエラーは、私が不適切にターゲットを設定していたという私の仮定をもたらしたのでdocument.ready
、スクリプトの後半で以前の関数を呼び出すときに不要であることがわかった関数をラップして作成しましたが、理由はわかりません困っていました。
- また、スクリプトの後半で関数を呼び出すことができない理由についても混乱し
これのいくつかは、私がまだ学んでいる OOP の原則に関係していることを認識しています。とても感謝しています!
( function ($) { // wrap jQuery to prevent conflicts
$(document).ready(function () {
function convertToXML (targetList) {
var targetList = [];
var i = 0;
while (i<=targetList.length) {
var target = targetList[i];
targetList.push( target );
i++;
};
};
$(document).ready(function() {
convertToXML(['Title:','Prerequisite:','Cost:','Description:','Effect:','Categories:' ]);
});
}); // end document.ready
} ) ( jQuery );