Я хочу, чтобы стиль каждого элемента в моем документе HTML был «display: none;», за исключением одного. Я не могу редактировать исходный файл HTML. Я использую Qt Webkit, чтобы попытаться сделать это, и это мой код до сих пор:Скрыть все divs, но один (Qt Webkit)
QWebFrame *frame = webView->page()->mainFrame();
QWebElement document = frame->documentElement();
foreach (QWebElement element, document.findFirst("body").findAll("*"))
element.setAttribute("style", "display: none");
QWebElement canvas = document.findFirst("canvas");
canvas.setAttribute("style", "display: inline");
Однако это скрывает все, в том числе элемент холста.
Как я мог это сделать?
Я попробовал ваше решение (я сделал что-то отредактировать, хотя: 'QWebElement холст = document.findFirst ("холст"); QWebElement родитель = canvas.parent(); сделать { parent.setAttribute ("стиль"," display: inline "); parent = parent.parent(); } while (& parent! = &body); canvas.setAttribute (" style "," display: inline "); это мой код. застрял в бесконечном цикле (очевидно, и родительский никогда не равен & body). – RaptorDotCpp
Это потому, что вы сравниваете адреса переменных. Вы не можете это сделать. –
Тогда как я могу установить хорошее условие для цикла? – RaptorDotCpp