jQuery(およびjavascript)は本当に新しいです。 私は2つの重複した "エディタ"を持っており、関数呼び出し元と同じdivに含まれる段落に対して関数を実行したい。jQuery - 関数呼び出し元と同じdivで関数を実行
私は段落を見つけるのにclosest
メソッドを使用していますが、それが最良の解決策であるかどうかはわかりません。要素のインデックスで何かをする方が良いでしょうか?
また、私は横断されたDOMの量を減らすためにセレクタにコンテキストを与えたいと思います。
マークアップの簡易版:
<div id="wrapper1">
<div>
<p class="paragraph">This is text of box #1</p>
</div>
<div>
<div>
<a href="#" class="doBold">Bold</a>
<a href="#" class="doItalic">Italic</a>
</div>
</div>
</div>
<div id="wrapper2">
<div>
<p class="paragraph">This is text of box #2</p>
</div>
<div>
<div>
<a href="#" class="doBold">Bold</a>
<a href="#" class="doItalic">Italic</a>
</div>
</div>
</div>
のjQueryの単純化されたバージョン:
$(document).ready(function($){
var methods = {
doBold: function() { $(this).closest(':has(.paragraph)').toggleClass('bold') },
doItalic: function() { $(this).closest(':has(.paragraph)').toggleClass('italic') },
}
$('.doBold').click(methods.doBold);
$('.doItalic').click(methods.doItalic);
});
@ user495915第2の解決策は、パラグラフとリンクの両方に 'bold'と' italic'クラスを適用します。 'paragraph'だけに適用したいのであれば、フィルタリングする必要があります。 3番目のソリューションはフィルタ – thecodeparadox
@ Abdullah.abcoderに感謝します、それはトリックを行います。今私は(おそらく愚かな)質問がある、 'doBold'メソッドと' doItalic'メソッドの外に '.paragraph'を見つける部分を格納することができますか? – user495915
@ user495915あなたは、その.paragraphのHTML全体、あるいはテキストのみを保存したいですか? plsは明らかにする。私はあなたを助けるかもしれない – thecodeparadox