如何在没有#符号的情况下获取attr id

时间:2017-02-10 08:13:08

标签: javascript jquery html anchor attr

这件事让我感到困惑 我尝试获取锚属性并用这种方式将其替换为输入id,但是如果锚具有更长的id,则事情不起作用。如何在没有标志的情况下获得身份#

$('.srcFilter a').click(function(e){
		e.preventDefault();
		var a = $(this).attr('href');
		var b = a.slice(1,6);
		$('input').attr( 'id',b);
	})
a{
margin-right:10px;
}
<input id="srcAll" />
<div class="srcFilter">
<a href="#item1">all</a>
<a href="#item2">item</a>
<a href="#item3">code</a>
<a href="#itemlong">item long</a>
</div>

4 个答案:

答案 0 :(得分:2)

使用:

var b = a.substr(1);

当你将length参数省略到substr()时,它默认为字符串的其余部分。

答案 1 :(得分:2)

使用.substr(1)获取不带0索引的锚属性&#39;#&#39;并添加jquery。检查结果:

&#13;
&#13;
$('.srcFilter a').on('click',function(e){
		e.preventDefault();
		var a = $(this).attr('href');
		var b = a.substr(1);
		$('input').attr('id',b);
        console.log(b);
	});
&#13;
a{
margin-right:10px;
}
&#13;
<script  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input id="srcAll" />
<div class="srcFilter">
<a href="#item1">all</a>
<a href="#item2">item</a>
<a href="#item3">code</a>
<a href="#itemlong">item long</a>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

试试这个。

&#13;
&#13;
[].forEach.call(document.querySelectorAll('a'), function(e){
  e.addEventListener('click', function() {
    var h = e.href;
    h = h.split("#")[1]; 

    // alternatives
    // h = h.substr(1, h.length);  -- might not fit every situation
    // h = h.match('#(.*)');
    let inp = e.parentNode.previousElementSibling;
    inp.setAttribute('id', h);
    inp.value = "May id is: "+h; //debugging -))
});  
})
&#13;
<input id="srcAll" />
<div class="srcFilter">
<a href="#item1">all</a>
<a href="#item2">item</a>
<a href="#item3">code</a>
<a href="#itemlong">item long</a>
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

检查一下,

javax.sql.DataSource

尝试一下,它会起作用。