3

次のhtmlで、CSSまたはjQuery(を使用して開始および終了するコンテンツを非表示にできますか?)私が直面している問題は(、以降のコードがどのdivにもラップされていないため、CSSを使用してdivクラスとセットを見つけることができないことdisplay:noneです。

<span>
    <a class="test" href="#">test</a> 
    (<a href="#">?</a>) 
</span>
4

6 に答える 6

3

$('span a:not(".test")').hide();あなたの限られた例で動作します。

ただし、括弧は非表示になりません。そのためには、不要なコードだけを削除するための特殊な関数が必要です。

$('span').html(function(i,old) {
    return old.substring(0,old.indexOf('('));
});​

http://jsfiddle.net/pkMgP/

削除するのではなく非表示にする場合は、すべてをHTML要素でラップし、それにスタイルを適用する必要があります。

$('span').html(function(i,old) {
    var idx = old.indexOf('(');
    return old.substring(0,idx) + '<span style="display:none">' + old.substring(idx) + '</span>';
});​

http://jsfiddle.net/pkMgP/1/

于 2012-07-26T19:21:44.997 に答える
0

要素display:noneを使用してみましたか。?

于 2012-07-26T19:21:49.280 に答える
0

DOM ノードの一部を非表示にすることはできません。完全なノードのみを非表示にします。

かっこを含むリンク全体を 1 つの でラップするようにマークアップを変更する必要があります<span>

これは Javascript で行うこともできますが、ソースで行う方がはるかに簡単です。

于 2012-07-26T19:23:24.610 に答える
0

jquery の使用:

$('.test').next().hide();​

これにより、括弧だけが残ります

于 2012-07-26T19:25:17.117 に答える
0

私はあなたの投稿を数回読み直さなければなりませんでしたが、私はあなたが望むものを理解していると思います. あなたが直接求めていることをすることはできません。

HTML を編集できる場合は、非表示にするコンテンツを囲む内側のスパンを追加して非表示にします。

HTMLを編集できないため、この質問をしていると思います。その場合、あなたができることは次のとおりです。

  1. 外側のスパン要素を見つけるために JQuery 式を作成する
  2. $(e).css('display','none') を使用して span 要素を非表示にします
  3. javascript を使用してスパンの内容をコピーし、隠したいものを削除します
  4. #3 で作成したコンテンツを含む新しいスパンを作成し、非表示にしたスパンの直前または直後にそれを DOM に追加します。
  5. 前後に切り替えて、コンテンツの表示を入れ替えることができるようになりました。
于 2012-07-26T19:25:32.553 に答える
0

アクションを定義するクラスをいくつか追加するだけです。

<span>
  <a class="go" href="#">test</a> 
  (<a href="#" class="hideme">?</a>) 
</span>

$('.go').bind('click', function(e){
    $('.hideme').hide();
});
于 2012-07-26T19:33:21.663 に答える