也许这是我真正的深夜,但我无法想象这一个。首先是html:
<div>
<a href="#internal">Internal Link</a>
<a href="http://external.com">External Link</a>
<a href="#internal2">Internal Link2</a>
</div>
为了在页面上执行某些操作而不是转到链接,我需要根据它是否在开头包含#来过滤它。这是[attribute ^ = value]解决方案的完美问题,但这不起作用......
var link = $(this[href^=#]);
我只知道如何把这个和属性限定符放在一起的问题......我不知道接下来要放什么.val()?!
答案 0 :(得分:1)
我对你正在追求的东西感到有点困惑......
如果你想测试当前对象在其href属性的开头是否有#:
var link = $(this);
if (link.is("[href^='#']") ...
否则你可以这样做:
$('div a[href^="#"]').val("This link starts with a #");
答案 1 :(得分:1)
//使用以下内容,您将搜索所有在'this'中以'#'开头的href标记的子项
var links = $('*[href^=#]', this);
答案 2 :(得分:1)
我猜你要提取的是链接上href属性的内容,你已经知道了带链接的容器。
我建议你想要的是:
var link = $('a[href^=#]',this).attr('href');
这应该返回示例中的数组['#internal','#internal2']。如果这不是您想要的,您可能希望在查询后显示您期望link
的样子。
答案 3 :(得分:1)
对不起伙计们 - 就像我说我从深夜起就处于阴霾之中。 简单的答案是在我尝试建立变量之前将[href ^ =#]移动到选择器。这是我的错,因为我试图在变量内部而不是在选择器上进行过滤,因此将其修改得很多,而且我的思绪混乱了...... 谢谢你,如果没有阅读你的(正确的)混淆回复,我就无法做到。以下是我通常会在更多的睡眠中解决的问题:
$("div a[href^=#]").click(function() {
var link = $(this).attr("href");
...
由于
PS。我一直在努力解决今天的另一个问题,我正在考虑发布它,但在此之后,我想我会回家睡觉,早上想想它:D