次のhtmlで、CSSまたはjQuery(
を使用して開始および終了するコンテンツを非表示にできますか?)
私が直面している問題は(
、以降のコードがどのdivにもラップされていないため、CSSを使用してdivクラスとセットを見つけることができないことdisplay:none
です。
<span>
<a class="test" href="#">test</a>
(<a href="#">?</a>)
</span>
$('span a:not(".test")').hide();
あなたの限られた例で動作します。
ただし、括弧は非表示になりません。そのためには、不要なコードだけを削除するための特殊な関数が必要です。
$('span').html(function(i,old) {
return old.substring(0,old.indexOf('('));
});
削除するのではなく非表示にする場合は、すべてをHTML要素でラップし、それにスタイルを適用する必要があります。
$('span').html(function(i,old) {
var idx = old.indexOf('(');
return old.substring(0,idx) + '<span style="display:none">' + old.substring(idx) + '</span>';
});
要素display:noneを使用してみましたか。?
DOM ノードの一部を非表示にすることはできません。完全なノードのみを非表示にします。
かっこを含むリンク全体を 1 つの でラップするようにマークアップを変更する必要があります<span>
。
これは Javascript で行うこともできますが、ソースで行う方がはるかに簡単です。
jquery の使用:
$('.test').next().hide();
これにより、括弧だけが残ります
私はあなたの投稿を数回読み直さなければなりませんでしたが、私はあなたが望むものを理解していると思います. あなたが直接求めていることをすることはできません。
HTML を編集できる場合は、非表示にするコンテンツを囲む内側のスパンを追加して非表示にします。
HTMLを編集できないため、この質問をしていると思います。その場合、あなたができることは次のとおりです。
アクションを定義するクラスをいくつか追加するだけです。
<span>
<a class="go" href="#">test</a>
(<a href="#" class="hideme">?</a>)
</span>
$('.go').bind('click', function(e){
$('.hideme').hide();
});