Reputation: 1016
I am trying to select tree-node element with children and first child but it is not a valid selector.
<g class="nodes">
<g class="tree-node enter" id="tree-node-cdl3c5he">
<g class="node-group">
<circle class="node-shape" r="80"></circle>
<g class="node-label-group" transform="translate(-80,-80)">
<foreignObject class="node-content-container" width="160" height="160">
<div class="node-content">
<div class="inner">
<div class="node-label" data-test-id="node-label-new-part">New Part</div>
</div></div></foreignObject></g><g class="root-group" transform="translate(0,-80)"><circle class="root-shape" r="15"></circle></g>
</g>
</g>
</g>
Using first child:
$('.nodes > .tree-node:first-child')
Ember test:
await click($('.nodes > .tree-node:first-child'));
Error: Failed to execute 'querySelector' on 'Document': '#ember-testing [object Object]' is not a valid selector.
Upvotes: 1
Views: 8362
Reputation: 1016
By accessing the object like $('.nodes > .tree-node:first')[0]
worked.
Upvotes: 0
Reputation: 22339
$('.nodes > .tree-node:first-child')
works fine and is not an invalid selector as seen below. It will return the first child of .nodes
with the class .tree-node
, if you however want to fget the first child within .tree-node
then you need to add a space $('.nodes > .tree-node :first-child')
$('.nodes > .tree-node:first-child')
Expected ►<g class="tree-node enter" id="tree-node-cdl3c5he">
var x = $('.nodes > .tree-node:first-child');
console.log(x)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<g class="nodes">
<g class="tree-node enter" id="tree-node-cdl3c5he">
<g class="node-group">
<circle class="node-shape" r="80"></circle>
<g class="node-label-group" transform="translate(-80,-80)">
<foreignObject class="node-content-container" width="160" height="160">
<div class="node-content">
<div class="inner">
<div class="node-label" data-test-id="node-label-new-part">New Part</div>
</div>
</div>
</foreignObject>
</g>
<g class="root-group" transform="translate(0,-80)">
<circle class="root-shape" r="15"></circle>
</g>
</g>
</g>
</g>
$('.nodes > .tree-node :first-child')
Expected ►<g class="node-group">
var x = $('.nodes > .tree-node :first-child');
console.log(x)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<g class="nodes">
<g class="tree-node enter" id="tree-node-cdl3c5he">
<g class="node-group">
<circle class="node-shape" r="80"></circle>
<g class="node-label-group" transform="translate(-80,-80)">
<foreignObject class="node-content-container" width="160" height="160">
<div class="node-content">
<div class="inner">
<div class="node-label" data-test-id="node-label-new-part">New Part</div>
</div>
</div>
</foreignObject>
</g>
<g class="root-group" transform="translate(0,-80)">
<circle class="root-shape" r="15"></circle>
</g>
</g>
</g>
</g>
Upvotes: 1