lft93ryt
lft93ryt

Reputation: 1016

jQuery [object Object] is not a valid selector

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

Answers (2)

lft93ryt
lft93ryt

Reputation: 1016

By accessing the object like $('.nodes > .tree-node:first')[0] worked.

Upvotes: 0

Nope
Nope

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

Related Questions