プロが教えるわが家の防犯対策術!

<ul>
<li id="1" class="comment-set"> <div class="txt"> foo1 </div> </li>
<li id="2" class="comment-set"> <div class="txt"> foo2 </div> </li>
<li id="3" class="comment-set"> <div class="txt"> foo3 </div> </li>
<li id="4" class="comment-set"> <div class="txt"> >>1 foo4 </div> </li>
<li id="5" class="comment-set"> <div class="txt"> foo5 </div> </li>
</ul>

というリストの中で、>>1などとアンカーがついているli要素のみ削除したいと思います。

(上の例だとid="4"のli要素です)

下からループして、文章中に">>(数字)"の形を含むものを見つけたらremove処理を実行しようと思います。

そこで以下のようなコードを書いて走らせたのですが、動作しません。

<script type="text/javascript">
$(function() {
var size = $('li.comment-set').length;
while(size>0) {
var foo='#'+size;
console.log(foo);
var bar = $(foo).match(/\>\>(\d+)$/);
if(bar){
$(foo).remove();
}
size = size-1;
}
});
</script>


コンソールには、

[15:21:28.514] TypeError: $(...).match is not a function @ http://localhost/comment_test/index.php:80

というエラーが表示されています。


原因に皆目見当がつかないため、どなたか解決方法を教えていただきたいです。

よろしくお願いいたします。

A 回答 (1件)

正直、コードに意図が不明な点がいくつかあります…。


初心者だからいろいろ間違えてるだけなんでしょうか。
そうだと仮定するならば、以下にすればいいんじゃないでしょうか。

var bar = $(foo).text().match(/>>(\d+)/);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!