尝试使用jQuery获取当前选定元素的下一个元素的值

时间:2019-03-18 02:25:42

标签: javascript jquery jquery-ui

我正在尝试获取当前/选定元素的下一个元素的值,例如,这里是列表

<ul>
<li class="abc selected"><a href="www.test.com">test</a> </li>
<li class="abc"><a href="www.test1.com">test1</a> </li>
<li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>

从上面的代码中,我尝试获取与所选li紧邻的“ a”标签的值,在上述情况下,我尝试获取test1和此“ a”标签的标签的值在所选位置之后的下一个li之内。

我尝试使用下面的jQuery,但是它获取了空结果。任何帮助

var linktext1= jQuery(".selected").next("li a").text();
alert (linktext1);

2 个答案:

答案 0 :(得分:4)

传递给.next的选择器字符串将过滤出与选择器字符串不匹配的下一个元素。但是下一个元素是li,而不是a,因此.next('li a')将不起作用。

改为使用.next("li").find('a')

var linktext1 = jQuery(".selected").next("li").find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="abc selected"><a href="www.test.com">test</a> </li>
  <li class="abc"><a href="www.test1.com">test1</a> </li>
  <li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>

在这种特殊情况下,li不需要传递给.next,因为.selected将是li,因此它的兄弟姐妹也将是li s:

var linktext1 = jQuery(".selected").next().find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="abc selected"><a href="www.test.com">test</a> </li>
  <li class="abc"><a href="www.test1.com">test1</a> </li>
  <li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>

答案 1 :(得分:0)

我认为您应该删除“ li a”,它可以正常工作。下面是代码

var substr = [1, 2, 3, 4, 5, 6];
var urls = [];
for (var i = 0; i < substr.length; i++) {
  urls.push('url' + substr[i] + '=');
}
var joinArr = urls.join('&');
console.log("JoinArray", joinArr);

以下是示例jsfiddle