Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
JQuery animate property is not working on :not selector

I want to animate the opacity of all other divs expect one, so I have used css :not property, but it doesn't seem to be working. Because instead of doing what I want, it changed opacity of all div elements including the div which I don't want to be changed... This is my code:

function urlHighlight() {
const queryString = window.location.search
    const urlParams = new URLSearchParams(queryString)
    const product = urlParams.get('h')

    //To check whether Url param and Div with data Id of given Url param exists
    if (product && $(`div[data-id=${product}]`).length == 1){
        $('html, body').animate({
            scrollTop: $(`div[data-id=${product}]`).offset().top - 100
        }, 2000);

        //I want to change opacity of the div elements which don't have the Url param as value of data-id
        $(`body:not(div[data-id=${product}])`).animate({
            opacity: 0.5
        }, 5000, function(){$(this).removeAttr("style")})
    }
}

$(function(){
    $.getJSON("data.json", function(data) {
         //some functions
         urlHighlight()
})
})

What is the problem and how should I fix it?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The selector should be body *:not(div[data-id=${product}]) like this. all tags inside body that are not the set condition.

function urlHighlight() {
const queryString = window.location.search
    const urlParams = new URLSearchParams(queryString)
    const product = 'test' || urlParams.get('h') //defaulting to test

    //To check whether Url param and Div with data Id of given Url param exists
    if (product && $(`div[data-id=${product}]`).length == 1){
    console.log('in');
        $('html, body').animate({
            scrollTop: $(`div[data-id=${product}]`).offset().top - 100
        }, 2000);

        //I want to change opacity of the div elements which don't have the Url param as value of data-id
        console.log($(`body *:not(div[data-id=${product}])`));
        $(`body *:not(div[data-id=${product}])`).animate({
            opacity: 0.5
        }, 5000, function(){$(this).removeAttr("style")})
    }
}

$(function(){
    // $.getJSON("data.json", function(data) {
         //some functions
         setTimeout(() => {
         urlHighlight()
         }, 1000);
// })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div data-id="test" style="height:100px;width:100px">test</div>
<div data-id="testy" style="height:100px;width:100px">test2</div>
</body>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!