1

パブリック ドメインのサイト (cancer.gov) からコンテンツをスクレイピングしていますが、マークアップを再フォーマットしたいと考えています。私は自由に使える jQuery を持っています。それをコピーして Vim に貼り付けることができるように、それをコンソールに入れようとしています。

tdにしたい要素の配列を作成するところまで行きましたが、それらをループしてタグでh3ラップしようとすると、DOM要素が見つからないと思います. 、意味がありません。h3Error: NOT_FOUND_ERR: DOM Exception 8

コメントしたfiddleをチェックしてください。

ボーナス ポイント:tdはすべて質問であり、それらを配列インデックスに分割する唯一の方法は?、出力の疑問符を切り取って で分割することでした。それらを元に戻す最良の方法は何ですか?

アップデート

ページを確認してコンソールで試してみたい場合は、ここにあります。

4

2 に答える 2

1

jQueryオブジェクトを作成しても、魔法のようにそれらがDOM要素に変わることはありません。


HTMLの大きな文字列を作成し、それをjQueryコンストラクターに渡すだけです。

var questions = $('selector here...').text().split('?');

questions = $('<h3>' + questions.join('?</h3><h3>') + '?<h3>' );

これがあなたのフィドルです:http://jsfiddle.net/M4Pn5/1/

于 2013-01-30T19:08:35.363 に答える
0

単純にコンテンツを配列に取得し、疑問符を心配することなく、配列に対して必要なことを行うことができます。

var myarr = $('#Table1').find('tr:even');//even to exclude the hr rows

ここで、それでできることをいくつか示します。

var myQuest = myarr.find('td:eq(0)').map(function () {
    return $(this).html();
});//questions
var myAns = myarr.find('td:eq(1)').map(function () {
    return $(this).html();
});// answers

//process the arrays:
for (var i = 0; i < myQuest.length; i++) {
    alert(myQuest[i]+ myAns[i]);
};

myarr.find('td:eq(0)').wrap('<h3>');//wrap the questions
于 2013-01-30T20:31:10.347 に答える