我想删除数据notification_uri参数中的单词"/settings">
<div class="um-notification-ajax" data-notification_uri="http://website.com/settings/stack/">TEXT</div>
我尝试但没有成功:
$('.um-notification-ajax').each(function(){
this.href = this.href.replace('/settings', '');
});
你很接近。您只需要获取替换的值并将其放回原始字符串中即可。在使用 jQuery 方法时,还需要使用 $(this(:
$('.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>
使用正确的属性应该可以完成此操作。因为它不是href
,而是data
属性。
使用香草JS和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>
使用 jQuery 解决方案:
$('.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>
这个呢:
$('.um-notification-ajax').each(function(){
$(this).data('notification_uri', $(this).data('notification_uri'). replace('/settings', ''));
});
尝试更改它的属性,这里是纯 js:
document.getElementsByTagName('div')
[0].setAttribute('data-notification_uri',
'http://website.com/stack/')
那是因为您正在尝试替换href
而不是data-notification_uri
。
这应该有效:
$('.um-notification-ajax').each(function(i, notification){
var uri = $(notification).attr('data-notification_uri').replace('/settings', '')
$(notification).attr('data-notification_uri', uri)
})