如果标题等于变量,我试图制作一个操作网站的Chrome扩展程序来按下链接:
var wantedItem = "exempel 4";
if ($("h1") == wantedItem) {
$("a")[0].click();
} else {
*tries the next one*
}
但问题是,我试图这样做的网站并没有命名不同的h1,它看起来像这样:
<h1><a class="name-link" href="">exempel 1</a></h1>
<h1><a class="name-link" href="">exempel 2</a></h1>
<h1><a class="name-link" href="">exempel 3</a></h1>
<h1><a class="name-link" href="">exempel 4</a></h1>
<h1><a class="name-link" href="">exempel 5</a></h1>
<h1><a class="name-link" href="">exempel 6</a></h1>
<h1><a class="name-link" href="">exempel 7</a></h1>
<h1><a class="name-link" href="">exempel 8</a></h1>
<h1><a class="name-link" href="">exempel 9</a></h1>
当有更多具有相同名称的变量时,我如何检查我的变量是否等于h1?
希望任何人都能帮助并理解我所写的内容
答案 0 :(得分:0)
var wantedItem = "exempel 4";
const link = [...document.querySelectorAll(".name-link")]
.find( el => el.innerHTML === wantedItem );
if( link ) link.click();
只需找到具有该特定内容的元素,然后单击该元素(或者执行其他操作)。
答案 1 :(得分:0)
尝试这样的事情
var wantedItem =“exempel 4”;
if ($("h1").text() == wantedItem) {
$(this).find("a")[0].click();
} else {
*tries the next one*
}
答案 2 :(得分:0)
您可以使用:contains()
选择器来实现此目的:
var wantedItem = "exempel 4";
$('h1:Contains("' + wantedItem + '") a')[0].click();
// just for this demo:
$('h1 a').click(function(e) {
console.log($(this).text());
});
var wantedItem = "exempel 4";
$('h1:Contains("' + wantedItem + '") a').click();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1><a class="name-link" href="">exempel 1</a></h1>
<h1><a class="name-link" href="">exempel 2</a></h1>
<h1><a class="name-link" href="">exempel 3</a></h1>
<h1><a class="name-link" href="">exempel 4</a></h1>
<h1><a class="name-link" href="">exempel 5</a></h1>
<h1><a class="name-link" href="">exempel 6</a></h1>
<h1><a class="name-link" href="">exempel 7</a></h1>
<h1><a class="name-link" href="">exempel 8</a></h1>
<h1><a class="name-link" href="">exempel 9</a></h1>
答案 3 :(得分:0)
使用:contains()
:
var wantedItem = "exempel 4";
var theH1 = $('h1:contains(' + wantedItem + ')');
theH1.find('a').click();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1><a class="name-link" href="">exempel 1</a></h1>
<h1><a class="name-link" href="">exempel 2</a></h1>
<h1><a class="name-link" href="">exempel 3</a></h1>
<h1><a class="name-link" href="">exempel 4</a></h1>
<h1><a class="name-link" href="">exempel 5</a></h1>
<h1><a class="name-link" href="">exempel 6</a></h1>
<h1><a class="name-link" href="">exempel 7</a></h1>
<h1><a class="name-link" href="">exempel 8</a></h1>
<h1><a class="name-link" href="">exempel 9</a></h1>
答案 4 :(得分:-1)
var wantedItem = "exempel 4";
if ($("h1") == wantedItem) {
$("a")[0].click();
} else {
*tries the next one*
}
$(&#34; h1&#34;)实际上会返回一个对象,您尝试将其与字符串值匹配。您实际需要做的是访问innerHTML并将其与相应的字符串匹配。为此,jquery为您提供.text函数。你需要做的第二件事是循环遍历所有元素以找到你的匹配,jquery为你提供.each函数。
var wantedItem = "exempel 4";
$( "h1 > a" ).each(function( index ) {
if($( this ).text() == wantedItem){
//perform click here.
$( this )[0].click();
}
});