![](/img/trans.png)
[英]How to select all elements except the ones with a given class, using jQuery?
[英]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
75.00
USD
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
75.00
USD
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.