<a id="link" href="http://www.google.co.uk">link</a>
<a id="link" href="http://stackoverflow.com">link</a>
javascript只会替换第一个href
,但我希望它适用于<a>
的所有id="link"
或者你有 jQuery 替代?
<script>
var link = document.getElementById('link');
var src = link.getAttribute('href');
var paramurl = encodeURIComponent(src);
link.setAttribute("href", "http://mysite.com/?url=" + paramurl);
</script>
答案 0 :(得分:3)
使用类名而不是id
:
<a class="link" href="http://www.google.co.uk">link</a>
<a class="link" href="http://stackoverflow.com">link</a>
使用JavaScript:
var links = document.getElementsByClassName('link');
for (i=0;i<links.length;i++){
var src = links[i].getAttribute('href');
var paramurl = encodeURIComponent(src);
links[i].setAttribute('href','http://mysite.com/?url=' + paramurl);
/* or, preferably:
links[i].href = 'http://mysite.com/?url=' + paramurl;
*/
}
答案 1 :(得分:0)
使用类
<a class="link" href="http://www.google.co.uk">link</a>
<a class="link" href="http://stackoverflow.com">link</a>
并更改href
attr,如
$("a.link").each(function(){
var src = $(this).attr("href");
var paramurl = encodeURIComponent(src);
$(this).attr("href","http://mysite.com/?url="+paramurl);
});
答案 2 :(得分:0)
页面上不应该有多个具有相同ID的元素。如果要同时将javascript函数应用于多个元素,则应使用class属性。
答案 3 :(得分:0)
使用类越好,但id可以是:
$(function () {
$('a[id=link]').each(function () {
var link = 'http://something' + $(this).attr('href');
$(this).attr('href', link);
});
});
答案 4 :(得分:0)
补充解决方案。我有一个包含许多记录(tr's)的表,当我用id =“fecharendicion”更改值时,脚本会使用class =“new_date”更改所有寄存器。
<input id="fecharendicion" name="0" type="date" placeholder="dd/mm/yyyy" />
<script>
$(document.body).on('change','#fecharendicion', function() {
var fecha = $('#fecharendicion').val();
$('.new_date').val(fecha);
});
</script>
...
<tr>
<td><input name="{{a.first.id}}" type="date" class="form-control new_date" /></td>
</tr>
...
答案 5 :(得分:-1)
使用jQuery $.each
方法将更改应用于每个单独的<a>
标记。这是一个有效的例子: