Sen, bu öğeleri kaldırmak döndü sette remove()
aramak için ...
$('h2').filter(function() {
return ! $.trim($(this).text());
});
ile sadece boşluk metin ile unsurlarını eşleşebilir.
jsFiddle. jQuery olmadan Alternatif
...
elements.filter(function(element) {
return ! (element.textContent || element.innerText).replace(/\s+/g, '');
});
Eğer senin elements
bir HTMLCollection
, NodeList
(veya başka bir şekilde bir Array
), Array.prototype.slice.call(elements)
ile Array
içine elements
Array.filter(elements, fn)
kullanabilir veya dönmek. Eğer çok eski tarayıcıları desteklemek zorunda olmadıysa
, sen return ! (element.textContent || element.innerText).trim()
kullanabilirsiniz.
elemanları üzerinde bu, döngü kaldırmak ve
thisElement.parentNode.removeChild(thisElement)
kullanın.
jsFiddle. Sadece düğümler ile çalışan ile Alternatif
...
var containsWhitespace = function me(node) {
var childNodes = node.childNodes;
if (childNodes.length == 0) {
return true;
}
for (var i = 0, length = childNodes.length; i < length; i++) {
if (childNodes[i].nodeType == 1) {
return me(childNodes[i]);
} else if (childNodes[i].nodeType == 3) {
return ! childNodes[i].data.replace(/\s+/g, '');
}
}
}
elements.filter(containsWhitespace);
jsFiddle.
Neden 'each()' yerine 'filter()' yi kullandınız? – alex
'$ .trim()' bu şekilde çalışmıyor. – alex
Hatam, ancak jQuery kullanıyorsanız, tarayıcılar arası güvenli araçlarını da kullanabilirsiniz. String.prototype.trim() 'ın günümüzde oldukça iyi desteklenmesine rağmen. – alex