0

td class-formlabel と text (HP)Hello を含む html テーブルがあります

  1. これがテキストを置き換えないのはなぜですか?

    $(this).text().replace('(HP)','');
    
  2. thisフォーマットが削除されるのはなぜですか?$("td.ms-formlabel").each(function(){

    $(this).text("hello");
    
  3. 上記のレンダリングされた html と以下のコードを指定して、一致の TR 行を非表示にするにはどうすればよいですか? (以下の条件とループを使用する必要があることに注意してください)

    $("td.ms-formlabel").each(function(){
    
    if($(this).text().match('(HP)')){
       // what code here to hide the entire TR row ?
    }
    

ありがとう。

4

3 に答える 3

1
  1. .text()文字列を返します。テキストを変更して置き換えるには、元に戻す必要があります。x + 5変わらないのと同じようなものxです。このx = x + 5場合、コードは次のようになります。

    $(this).text($(this).text().replace('(HP)',''));
    
  2. この質問がよくわかりません。HTML スタイルを設定しようとしている場合は、.html()代わりに関数を使用してください。

  3. これを試して:

    if ($(this).text().match('(HP)')) {
        $(this).closest('tr').hide();
    }
    
于 2009-12-10T15:46:41.243 に答える
1

いくつかのこと:

  • 使用する必要があります:contains
  • テキストは書式設定を削除します。使用する必要があります.html()
  • HTML (またはその件についてはテキスト) を指定するには、新しいコンテンツを角かっこで囲みます。つまり、element.text(content)

ここに例があります...

$("td.ms-formlabel:contains('(HP')").each(function(){
    var $this = $(this);
    $this.html($this.html().replace('(HP)',''));
    $this.closest('tr').hide();
}

それがあなたの望みだと思います。私が間違っているかもしれない唯一のことは、あなたが隠したい行です...あなたの言葉遣いはちょっと混乱しています...

于 2009-12-10T15:47:07.500 に答える
1
  1. $(this).text().replace('(HP)','');テキストを置き換えますが、何もしません-試してください:

    var text = $(this).text().replace('(HP)','');
    $(this).text(text);
    
  2. 内部にタグを付けて適用しない限り、削除してフォーマットするべきではありません.ms-formlabel

    <td class="ms-formlabel"><b>Bold</b></td>
    

    となります

    <td class="ms-formlabel">Hello</td>
    
  3. 以下を使用できます。

    $(this).closest('tr').hide();
    
于 2009-12-10T15:44:18.137 に答える