Attempting to retrieve the styling for the placeholder attribute of a specific element

I am currently working on a project for a company's website that utilizes placeholder attributes.

My main goal is to extract the color styling from this SPECIFIC ATTRIBUTE only, rather than from the input element itself.

The style is applied using --webkit-input-placeholder:

::-webkit-input-placeholder {
        color: red;
    } 

However, my attempt to retrieve the value through JavaScript has yielded an incorrect result:

var color = window.getComputedStyle(document.querySelector('[class=abc]'),
'::-webkit-input-placeholder').getPropertyValue('color');

Instead of getting the expected color:

rgb (255, 0, 0)

I am receiving:

rgb (0, 0, 0)

For reference, I have created a fiddle showcasing this issue: https://jsfiddle.net/darnold24/6q1pr5cf/

If anyone could provide assistance, it would be greatly appreciated. Additionally, I do have access to jQuery, although based on my understanding, it may only retrieve properties of elements and not attributes.

Answer №1

It's quite surprising that accessing a pseudo element style defined in your own CSS can be challenging.

However, there is a workaround by looping through document.styleSheets:

var st= document.styleSheets;
for(var i = 0 ; i < st.length ; i++) {
  var rules= st[i].cssRules;
  for(var j = 0 ; j < rules.length ; j++) {
    var css= rules[j].cssText;
    if(rules[j].selectorText.indexOf('::-webkit-input-placeholder') > -1) {
      console.log(rules[j].style.color);  //red
    }
  }
}
::-webkit-input-placeholder {
  color: red;
}
<input id="myPlaceHolder" class="abc" type="text" placeholder="Sample Placeholder" />

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

A step-by-step guide on setting up flow types for @material-ui/core version 4

Is there a way to install flow types for material-ui/core version 4.x.x? It seems like the last update was for version 1.x.x here. The documentation on this topic is quite limited here. I'm unsure if there is still support for this, especially since t ...

Execute a series of repetitive HTTP GET requests and remain patient for all of them to complete

I am working with a REST service that provides a list of 'Json' objects, where each object may contain a link to another resource of the same class. To fetch all these resources recursively starting from a specific one, I have written the followi ...

CSS is disabled for the Transformation Translate feature

I recently encountered an issue with the CSS style of a div component where the transform translate is disabled, causing trouble with positioning. How can I enable it to properly position the element? Screenshot of the problem Looking for a solution to f ...

Is it feasible to maintain a variable as a reference across views while utilizing ng-view?

I am facing a unique challenge: I have a webpage with two tabs that need to utilize ng-view from AngularJS. The twist is that both tabs must share the same variable, similar to referencing a variable in C# using the "ref" keyword. If you want to see an ex ...

Prevent the user from selecting an option if the value is already present

In the process of creating a library membership form, I am utilizing an ajax request to populate the student list in a select option. The goal now is to disable the options for students who are already members of the library. View of the Form <div cla ...

Deactivating the submit button after a single click without compromising the form's functionality

In the past, I have posed this question without receiving a satisfactory solution. On my quiz website, I have four radio buttons for answer options. Upon clicking the submit button, a PHP script determines if the answer is accurate. My goal is to disable t ...

"Trouble ensues when OrbitControls fail to function properly while loading a

I have a code snippet that displays a 3D file (obj, stl, 3mf) uploaded by the user using three.js OBJLoader, STLLoader, and 3MFLoader. Everything seems to be working fine, but I attempted to integrate OrbitControls so users can zoom in, zoom out, rotate, e ...

Display or conceal content based on checkbox status

i am trying to create a system where content is hidden by default and only displayed when a checkbox is checked. The goal is to show the content when the checkbox is checked and hide it when unchecked, so that other content can be shown as well upon checki ...

Creating a sliding bottom border effect with CSS when clicked

Is there a way to animate the sliding of the bottom border of a menu item when clicked on? Check out the code below: HTML - <div class="menu"> <div class="menu-item active">menu 1</div> <div class="menu-item">menu 2</ ...

JQuery: Checkbox keeps unchecking when switching between buttons

My knowledge of jquery is still at a beginner level, and I have a page that contains a total of 12 buttons/toggles (only 3 are shown as an example). When each button is clicked, it triggers the display of a PHP page with a set of checkboxes listed with var ...

During the deployment of a ReactJS app, webpack encounters difficulty resolving folders

While developing my ReactJS app, everything ran smoothly on localhost. However, I encountered some serious issues when I tried to deploy the app to a hosting service. In my project, I have a ./reducers folder which houses all of my reducers. Here is the s ...

What is preventing the bundling of my CSS into the application?

I'm facing an issue while setting up a new project using vue.js, scss, and webpack (with express.js on the server side and TypeScript). I copied over the configurations from a previous project where everything was working fine. According to my underst ...

What is the best way to align the right column section below the left column section on a reduced screen size in a responsive design?

When the screen size is small, I want the "left-side" of my project to be displayed above the right side. The problem I'm facing is that as the screen shrinks, the left side starts getting hidden by the right side until it suddenly jumps to the right ...

Tips for displaying content from JavaScript onto a div element in HTML

Javascript function validateForm() { var result; var keywords = document.querySelectorAll('#keywords'); [].slice.call(websites).forEach(function(website) { if (website.value == '') { ...

Expand Tooltip on the Fly

Is there a way to make a tooltip expand horizontally instead of overflowing below the page? I have a tooltip that can be quite lengthy, and due to its max-width being set at 200px, it extends beyond the bottom edge of the page. I am currently able to set ...

Styling and Script Files on a JQuery Mobile Website

Is it necessary to include CSS and JS files in every HTML page for a mobile site developed with JQueryMobile? <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> <script src="http://code.jquery.com/jqu ...

A guide on properly formatting an Array of Objects in JavaScript based on the contained data

My goal is to create an Array of Object that groups the same weekday data into one object. For example, if we have weekday:1 in five objects, the desired output would be: { ..., weekDay: 1, repeated: 5 } While I can achieve this by hard coding a solution ...

Minimize the amount of ajax requests for quick search functionality

Currently, I am in the process of developing an instant search drop down feature for my website. Everything seems to be functioning correctly except for this particular issue. var timeOut; $('#search input[name=\'search\']'). ...

Displaying both input fields and buttons side by side on mobile devices using Bootstrap

I am in the process of creating a navbar that includes select, input, and button elements. Below is the code I have written: <nav class="navbar sticky-top navbar-light p-0"> <div class="collapse navbar-collapse search-bar show p-4" id="navbarSupp ...

What could be causing the spotlight in my three.js scene to stay centered in the camera perspective, but only when using Chrome on an Android device?

Currently, I am experimenting with AngularJS and Three.js to create a small example of a VR application. To define controls based on whether the user is using a mobile device or not, I have implemented OrbitControls for non-mobile devices and DeviceOrienta ...