1

div#requestの内容を選択する必要がありますが、.requestHeaderの内容は選択しません。どのセレクターを使用する必要がありますか?

<div id="request">
  <h3 class="requestHeader">
    Request Details
  </h3>
    Dear Human, In this life you're allowed to make only one request. Keep in mind! Even that request will never be resolved!!
    <br/>
      Request for Money&nbsp;
      75.00&nbsp;
      USD&nbsp;
      per day
</div>

やってみdiv#request:not(.requestHeader)ました。動作しておらず、と同じ結果になりdiv#requestます。私は何が欠けていますか?

必要な出力:(印刷するだけ)

    Dear Human, In this life you're allowed to make only one request. Keep in mind! Even that request will never be resolved!!
    <br/>
      Request for Money&nbsp;
      75.00&nbsp;
      USD&nbsp;
      per day

連鎖せずにこれを行う必要があります。つまり$('#request'):not('requestHeader')、何もできません。私にはこれをする自由があります$('SELECTOR-HERE')

4

5 に答える 5

5
$('*','#request').not(".requestHeader")

要素内のすべての要素を検索#requestし、クラスを持つ要素を除外します.requestHeader

あなたが抱えている問題は、おそらく#requestdiv内に他の要素がないことです。テキストは要素ではなく単なるテキストノードであるため、ターゲティングdivのコンテンツも選択するには、おそらく使用する必要があり、andSelf()意図contents()する方法に応じてセレクターを使用するには、それが質問に答えるために必要な重要な部分です。テキストを置き換えるだけですか、それとも DOM 要素などとして操作するつもりですか。

于 2012-08-04T10:59:04.723 に答える
1
$('#request').not('.requestHeader')
于 2012-08-04T11:08:40.773 に答える
0

HTML を変更できる場合は、テキストの周りにスパン要素を配置することをお勧めします。これにより、requestHeader クラス以外のすべてを簡単に選択できるようになります。

このjsFiddle http://jsfiddle.net/davew9999/gepga/を参照してください

于 2012-08-04T11:26:09.087 に答える
0

私が見る唯一の方法は、テキスト ノードのラッピング要素の内容をフィルタリングすることです。

var theText = $('#request').contents().filter(function() {
     // Text nodes only
    return this.nodeType === 3;
}).text();

// Trim leading and trailing white spaces
console.log($.trim(theText));   

JSFiddle を参照してください: http://jsfiddle.net/YNLwG/1/

于 2013-08-27T06:43:10.950 に答える