1

I want to remove the word "/settings" in data-notification_uri parameter

<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>

I tried without success :

$('.um-notification-ajax').each(function(){
    this.href = this.href.replace('/settings', '');
});
1
  • It's not working Commented Aug 17, 2017 at 20:14

5 Answers 5

2

You were close. You just need to take the replaced value and put it back in the original string. Also you need to use $(this) when using jQuery methods:

$('.um-notification-ajax').each(function() {
  $(this).attr('data-notification_uri', $(this).attr('data-notification_uri').replace('/settings', ''));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>

Sign up to request clarification or add additional context in comments.

1 Comment

Working perfectly ! Thank you
1

Using the correct properties should make this work. Since it's not a href but a data property.

Using Vanilla JS and dataset.

$('.um-notification-ajax').each(function(){

    this.dataset["notification_uri"] = this.dataset["notification_uri"].replace('/settings', '');
    console.log(this.dataset["notification_uri"]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>

Using a jQuery solution:

$('.um-notification-ajax').each(function(){

    $(this).data("notification_uri", $(this).data("notification_uri").replace('/settings', ''));
    console.log($(this).data("notification_uri"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>

Comments

0

What about this:

$('.um-notification-ajax').each(function(){
    $(this).data('notification_uri', $(this).data('notification_uri'). replace('/settings', ''));
});

Comments

0

Try to change it Attribute, here is pure js:

    document.getElementsByTagName('div')
    [0].setAttribute('data-notification_uri',
    'http://website.com/stack/')

Comments

0

That's because you are trying to replace href instead of data-notification_uri.

This should work:

$('.um-notification-ajax').each(function(i, notification){
  var uri = $(notification).attr('data-notification_uri').replace('/settings', '')
  $(notification).attr('data-notification_uri', uri)
})

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.