<div>
<ul>
<li>1</li>
<li><a>2</a></li>
<li>3</li>
<li>4</li>
<li><a>5</a></li>
<li>6</li>
</ul>
</div>
かなり簡略して書きましたが、上の<li>要素の子要素に<a>要素がある場合とない場合があり、
子要素に<a>要素がない<li>要素の中身のテキストをwrapInner()で<a>要素でラップしたいのですが
「子要素に<a>要素がない<li>要素」の選別がうまくできません。<li>要素をすべて選択してしまったり、
なかなかうまくいきません。どなたか助けてください。
こんな感じでできました。
<script> $(function() { $("li:not(:has(a))").wrapInner("<a style='color:red;' />"); }); </script> <div> <ul> <li>1</li> <li><a>2</a></li> <li>3</li> <li>4</li> <li><a>5</a></li> <li>6</li> </ul> </div>
wrapInner が効いてるのが分かりやすいように、color: red を付けてます。
動作が確認できたら、適宜、変更してください。
jsfiddle.net で、確認してみたのがこちらです。
http://jsfiddle.net/SQ8Hf/
ありがとうございます。問題なくできました。
2012/09/23 19:17:47