簡體   English   中英

jQuery:CSS選擇器:如何選擇除特定類之外的所有元素?

[英]jQuery: CSS Selector: How to select all elements except a specific class?

我需要選擇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')

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

查找#request元素內的所有元素,然后排除類.requestHeader元素

您遇到的問題可能是#request div中沒有​​其他元素,文本只是textnodes而不是元素,因此要選擇定位div的內容,您可能還需要使用andSelf() ,也許contents()取決於您打算如何使用選擇器,這是回答問題所需的關鍵部分,您打算只是替換文本還是將其作為DOM元素進行交互等。

$('#request').not('.requestHeader')

如果可以更改HTML,建議您在文本周圍放置一個span元素。 這將允許您輕松選擇除requestHeader類之外的所有內容。

看到這個jsFiddle http://jsfiddle.net/davew9999/gepga/

我看到的唯一方法是為文本節點過濾包裝元素的內容。

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/

該jQuery將應用於#request元素內的所有元素,但.requestHeader類的元素除外。

$("#request *:not('.requestHeader')");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM