如果h1和p等于变量jquery,请单击链接

时间:2017-09-18 15:09:47

标签: javascript jquery html google-chrome google-chrome-extension

如果我有这样的事情:



<div class="inner-article">
  <h1><a class="name-link" href="link">Exempel 1</a></h1>
  <p><a class="name-link" href="link">a</a></p>
</div>
<div class="inner-article">
  <h1><a class="name-link" href="link">Exempel 2</a></h1>
  <p><a class="name-link" href="link">a</a></p>
</div>
<div class="inner-article">
  <h1><a class="name-link" href="link">Exempel 2</a></h1>
  <p><a class="name-link" href="link">b</a></p>
</div>
<div class="inner-article">
  <h1><a class="name-link" href="link">Exempel 3</a></h1>
  <p><a class="name-link" href="link">a</a></p>
</div>
&#13;
&#13;
&#13;

如果h1 = var1且p = var2
,我想点击链接 我有这段代码:

&#13;
&#13;
var var1 = "Exempel 2";
var var2 = "a";

    $( "h1 > a" ).each(function( index ) {
       		 if($( this ).text() == var1){
      	 		$( this )[0].click();
    		}
    	});
&#13;
&#13;
&#13; 代码工作正常,但问题是,当有更多h1具有相同的文本时,它会打开两个链接并最终在最后一个链接上。 那么我该如何打开正确的链接?

2 个答案:

答案 0 :(得分:0)

您需要检查h1和adiacent p中的文字是否符合您的条件。

var var1 = "Exempel 2";
var var2 = "a";

    $( "h1 > a" ).each(function( index ) {
             if($( this ).text() == var1 && 
                   $( this ).closest('div').find("p > a").text() == var2) {
                $( this )[0].click();
            }
        });

答案 1 :(得分:0)

这应该可行。它提供更少的循环

 var var1 = "Exempel 2"; 
var var2 = "a"; 

$( "div" ).each(function( index ) {         
    if($( this ).find('a:first').text() == var1 && $( this ).find('a:last').text()  == var2)
       $( this ).find('a:first').click()
       return false;
     }  
});