Или быстрый пример, который запускается в консоли на этой странице:
var startNode = jQuery("li.related-site").get(0); // quick jQ to get a testable node.
var spanLess = [];
var child = startNode.firstChild;
while(child){
if(child.nodeType == 1){
var anySpans = child.getElementsByTagName('span');
if(!anySpans.length) spanLess.push(child);
}
child = child.nextSibling;
}
spanLess;
Исходя из вашего комментария, что вы пытаетесь извлечь значения для использования с tablesorter, вы также можете найти полезную функцию для извлечения текстовых значений из узла независимо от разметки:
function extractText(node){
if(node.nodeType == 3) return node.nodeValue.trim();
if(node.nodeType == 1){
var buf = [];
var child = node.firstChild;
while(child){
var val = extractText(child);
if(val) buf.push(val);
child = child.nextSibling;
}
return buf.join(' ');
}
return '';
}
вывод должен быть 3.3219280948873623478703194294894, и он работает в моем консольном приложении
blockquote>У вас есть конфликт имен между вашей функцией
log2
и стандартной библиотекойstd::log2()
. Поскольку библиотечная функция предоставляется для всех целочисленных типов , она лучше подходит, когда оба найдены по разрешению имен.Измените вашу функцию на уникальное имя, тогда ваши результаты тестирования WinForms и консоли будут отражать ее реальное поведение (возвращать целое число).