jqueryをjqueryで使用していますが、うまくいきます。しかし、私は自分のコードを少しずつモジュール化しようとしていますので、私は自分自身を繰り返さないので、html(DOM)をいくつか取り、jqueryで微調整して元に戻します。しかし、私は私の結果を返すことができないので、それを呼び出すvarに割り当てます。私はおそらく正しい場所に戻っていないだろうが、私はちょうどもしそうなら明らかではない。少しの助けを使うことができました。単純なjsdom関数から値を返すにはどうすればよいですか?
ここでは、コードです:
function tweakIt(html_in, callback){
var jsdom = require('jsdom');
jsdom.env({
html: html_in,
scripts: [
'../public/javascripts/jquery-1.7.1.min.js',
],
done: function(errors, window) {
var $ = window.$;
// do some jquery magic and manipulate the dom
$('body').append('<div>foo</div>');
console.log('Freshly Manipulated HTML: '+ $('body').html()); // it logs perfectly
callback($('body').html()); // instead of a return, pass the results to the callback
}
});
}
var oldhtml = '<html><body><div>some text</div></body></html>';
var newhtml = tweakIt(oldhtml, function(newstuff){
console.log(newstuff); // woohoo! it works!
});
OK、しかし、どのように私は '行わからコールバックにnewHtmlを送ってください:'? – k00k
気にしない、私はそれを理解した。どのようにして行うべきかを示すためにOPを編集します。ありがとう! – k00k
あなたがtweakIt関数 'callback'で2番目のパラメータを指定したと仮定した場合、done関数のreturn文の代わりに次のようなことをします:' callback($ body).html()) ' –