mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:07:46 +00:00
LibWeb: Implement Document.getElementById()
This was pleasantly simple! We don't have an ElementWrapper yet, so it just returns a NodeWrapper, but it still basically works. :^)
This commit is contained in:
parent
1c406294fc
commit
b5a22fc408
3 changed files with 14 additions and 3 deletions
|
@ -2,6 +2,7 @@
|
|||
#include <LibJS/Value.h>
|
||||
#include <LibWeb/Bindings/DocumentWrapper.h>
|
||||
#include <LibWeb/DOM/Document.h>
|
||||
#include <LibWeb/DOM/Element.h>
|
||||
|
||||
namespace Web {
|
||||
namespace Bindings {
|
||||
|
@ -9,6 +10,15 @@ namespace Bindings {
|
|||
DocumentWrapper::DocumentWrapper(Document& document)
|
||||
: NodeWrapper(document)
|
||||
{
|
||||
put_native_function("getElementById", [this](JS::Interpreter&, Vector<JS::Value> arguments) -> JS::Value {
|
||||
if (arguments.is_empty())
|
||||
return JS::js_null();
|
||||
auto id = arguments[0].to_string();
|
||||
auto* element = node().get_element_by_id(id);
|
||||
if (!element)
|
||||
return JS::js_null();
|
||||
return wrap(heap(), const_cast<Element&>(*element));
|
||||
});
|
||||
}
|
||||
|
||||
DocumentWrapper::~DocumentWrapper()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue