2

I need to retrieve an element in an html document. I can't update the html so I can't add a class or an id. And the class used here can pobliby be used in another place in the code. Here is the element :

<a href="javascript:void(0);" title="M'affecter cette demande" data-aura-rendered-by="1314:0" class="forceActionLink" data-aura-class="forceActionLink">
      <div class="slds-truncate" title="M'affecter cette demande" data-aura-rendered-by="1315:0">M'affecter cette demande</div>
</a>

So I want to retrieve the <a> element, by using the title attribute. In javascript I try that :

var bouton = document.querySelector("[title = \'M'affecter cette demande\']");

But I got an error :

Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '[title = 'M'affecter cette demande']' is not a valid selector.

How can I retrieve this element ?

dou
  • 131
  • 1
  • 1
  • 7

3 Answers3

2

Use this selector instead: [title="M\'affecter cette demande"]

var elem = document.querySelector('[title="M\'affecter cette demande"]');

console.log(elem);
<a href="javascript:void(0);" title="M'affecter cette demande" data-aura-rendered-by="1314:0" class="forceActionLink" data-aura-class="forceActionLink">
      <div class="slds-truncate" title="M'affecter cette demande" data-aura-rendered-by="1315:0">M'affecter cette demande</div>
</a>
Ele
  • 33,468
  • 7
  • 37
  • 75
2

You can simply use this selector:

var a = document.querySelector('a[title="M\'affecter cette demande"]');
console.log(a);
<a href="javascript:void(0);" title="M'affecter cette demande" data-aura-rendered-by="1314:0" class="forceActionLink" data-aura-class="forceActionLink">
  <div class="slds-truncate" title="M'affecter cette demande" data-aura-rendered-by="1315:0">M'affecter cette demande</div>
</a>
CodeF0x
  • 2,624
  • 6
  • 17
  • 28
1

Using double quotes ":

you'll have to escape the inner double quotes:

"[title = \"M'affecter cette demande\"]"

Using single quotes ':

you'll have to escape the inner single quote:

'[title = "M\'affecter cette demande"]'

Using template literal `:

you don't have to escape anything:

`[title = "M'affecter cette demande"]`
ibrahim mahrir
  • 31,174
  • 5
  • 48
  • 73