如果href以word开头,则执行函数 - No jQuery

时间:2018-03-27 11:23:05

标签: javascript href

我想知道是否可以仅使用href的开头来执行函数,例如:

我有以下href ...

<a class="title" href="example-1.html"></a>

...并希望做到以下几点:

var href = document.querySelector('.title').getAttribute('href');

window.onload function(){
if (href === "example/./.html"){
 /* do something */
 }
}

OR

var href = document.querySelector('.title').getAttribute('href');

window.onload function(){
of (href.beginsWith === "example"){
/* do something */
 }
}

我不知道他们是否接近可能的事情,但希望他们能够了解我想做什么。请只有Vanilla JavaScript谢谢。

提前致谢!

3 个答案:

答案 0 :(得分:3)

是的,您可以轻松获取href属性的值(就像您一样 - 并且您想要attr,而不是属性;属性将被扩展为其完整形式)并使用{{3 }},或startsWithstartsWith结合使用,或正则表达式:

var href = document.querySelector('.title').getAttribute('href');
window.onload = function(){
    if (href.startsWith("example")) { // 
        /* do something */
    }
};

if可能是

    if (href.startsWith("example") && href.endsWith(".html")) { // 

或使用正则表达式:

    if (/^example.*\.html$/i.test(href)) { // 

我不建议等待load事件,但在页面加载过程中它会发生非常

另外,请确保在文档末尾的脚本代码中var href = document.querySelector('.title').getAttribute('href');执行</body>,就在结束=代码之前。

另请注意上面的}以及至少一个缺失的startsWith

最后:在ES2015中添加了endsWithusing(WordprocessingDocument wDoc = WordprocessingDocument.Open(ms, true)) { var gjenerimi = randomstring(14); var body = wDoc.MainDocumentPart.Document.Body; var lastParagraf = body.Elements<Paragraph>().FirstOrDefault(); var run = new Run(); run.AppendChild(new Text(DateTime.Now.ToString())); run.AppendChild(new Text(gjenerimi)); run.AppendChild(new Text(merreshifren())); lastParagraf.AppendChild(run); } ,因此任何模糊的最新浏览器都应该拥有它们,但是(例如)没有IE版本(甚至不是IE11) 。如果您需要IE支持,上面的链接可以使用polyfill。

答案 1 :(得分:2)

您可以按属性搜索元素,这似乎正是您需要的。这将找到具有以example

开头的href值的所有锚标签
var exists = document.querySelector("a[href^='example'") !== null;

if (exists) {
    /* do something */
}

或简而言之......

window.onload = function() {
    if (document.querySelector("a[href^='example'") !== null) { 
        /* do something */
    }
};

答案 2 :(得分:0)

您可以使用indexOf()进行检查,请参阅工作示例:

var href = document.querySelector('.title').getAttribute('href');
console.log(href);

window.onload = function() {
  if (href.indexOf("example") === 0) {
    console.log("Found!");
  }
}
<a class="title" href="example.html">sample link</a>

请注意,还有startsWith(),但它在某些旧版浏览器中不起作用,而indexOf()一直存在。