我正在尝试获取当前/选定元素的下一个元素的值,例如,这里是列表
<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);
答案 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