我试图在我通过AJAX get。
加载的HTML中找到一个特定的URL我试图使用下面的代码,但它返回undefined
var url_f_elem = $(html).find(".wb-bnr ~ a").html();
html在下面 - 我试图获取一个href内的url
<header role="banner">
<div id="wb-bnr" class="container">
<section id="wb-lng" class="visible-md visible-lg text-right">
<h2 class="wb-inv">Language selection</h2>
<div class="row">
<div class="col-md-12">
<ul class="list-inline margin-bottom-none">
<li>
<a lang="fr" href="/fr/ministere-defense-nationale/nouvelles/2017/09/la_construction_dunnouveaubatimentamelioreralentretiendevehicule.html">
Français
</a>
</li>
</ul>
</div>
</div>
</section>
答案 0 :(得分:2)
首先wb-bnr
是元素的id
,而不是class
,因此您应该使用#wb-bnr
。
其次,~
运算符是一般的兄弟选择器,因为a
不是#wb-bnr
的兄弟,所以这里不合适。你可以删除它。
最后,要获取您需要获取href
属性的URL,而不是元素的文本。试试这个:
var url_f_elem = $(html).find("#wb-bnr a").attr('href');
答案 1 :(得分:1)
您可以尝试这样
$(html).find("#wb-bnr a").attr('href');
您不必使用兄弟选择器。
$(&#34; prev~siblings&#34;)用于选择&#34; prev&#34;之后的所有兄弟元素。 element,拥有相同的父级,并匹配过滤&#34;兄弟姐妹&#34;选择。 https://api.jquery.com/next-siblings-selector/
示例代码段:
var url_f_elem = $('body').find("#wb-bnr a").attr('href');
console.log(url_f_elem);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header role="banner">
<div id="wb-bnr" class="container">
<section id="wb-lng" class="visible-md visible-lg text-right">
<h2 class="wb-inv">Language selection</h2>
<div class="row">
<div class="col-md-12">
<ul class="list-inline margin-bottom-none">
<li>
<a lang="fr" href="/fr/ministere-defense-nationale/nouvelles/2017/09/la_construction_dunnouveaubatimentamelioreralentretiendevehicule.html">
Français
</a>
</li>
</ul>
</div>
</div>
</section>
&#13;
答案 2 :(得分:0)
我认为如果你需要“Français”字符串,你需要这样做。
var url_f_elem = $('#wb-bnr').find('a').html().trim();
我认为你需要这样做以防你需要url attr。
var url_f_elem = $('#wb-bnr').find('a').attr('href');