-1

次のマークアップがあるとします。

    <body>
      <a href=# name="uniqueLink1">link</a> [ some text here
      <a href=# name="uniqueLink2">link</a> [ some more text here
    </body>

とにかく jQuery を使用して ' [ ' を一番上の行から削除し、一番下の行から削除することはありますか?

注: マークアップへのアクセス権はありませんが、必要にdivs応じて jQuery を使用して要素などを追加できます。しかし、jQuery はstring特に ' ] ' をターゲットにする必要はありません。「uniqueLink1.

4

2 に答える 2

4

jQuery は、テキスト ノードの操作にはあまり役に立ちませんが、次のようになります。

var tn = $('a[name="uniqueLink1"]')[0].nextSibling;
tn.nodeValue = tn.nodeValue.replace('[', '');

デモ


$()[n]は の省略形で$().get(n)あるため[0]、jQuery オブジェクト内で最初に一致した DOM 要素であるuniqueLink1アンカーへの参照を返します。

nextSiblingは、名前が示すように、次の兄弟ノードを取得します。この場合、指定されたアンカー要素に続くテキスト ノードです。

nodeValueテキスト ノードのコンテンツを取得および設定します。

String.replace()最初の引数として文字列を指定すると、最初に出現したものだけが置き換えられるため、DOM 構造が投稿されたものと似ていることを考えると、これで十分です。

于 2013-07-18T09:40:18.830 に答える