获取文本并在每个

时间:2017-07-10 06:39:59

标签: jquery function label each

我想从每个a.parent_link获取文本,并将其作为aria-label应用于每个相应的切换按钮(button.sub-expand_collapse)。我想要的最终结果是,如果aria-expanded = true,则添加aria-label = close +(text),如果aria-expanded = false,则添加aria-label = expand +(text)。

第一部分给我文字

$(".togSubList").each(function () {
        var bob = $(this).find(".parent_link").text();
        console.log(bob);
    });

但是我不能让每个人添加一个咏叹调标签。

     $(".togSubList").each(function () {
        var bob = $(this).find(".parent_link").text();
        //console.log(bob);
        $(".sub-expand_collapse").each(function(){
            $(this).attr("aria-label","expand " + bob)
        }); 
    });

HTML

   <li class="sub_p01 togSubList">

        <button class="sub-expand_collapse" aria-expanded="false">
            <i class="fa fa-plus" aria-hidden="true"></i>
        </button>

        <a id="subLnk_01" class="parent_link menu_p01" href="m01_c01_p01.html"><strong>Space saving widgets</strong></a> 
        <ul aria-labelledby="subLnk_01" class="sub_items">
            list of links
        </ul>
    </li>

2 个答案:

答案 0 :(得分:1)

你不需要第二个功能,因为在LI内你只有一个元素所以只需使用node traverse。和find这样的元素。并应用attribute

$(".togSubList").each(function () {
        var bob = $(this).find(".parent_link").text();

        $(this).find(".sub-expand_collapse[aria-expanded='false']").attr("aria-label","expand " + bob);
         $(this).find(".sub-expand_collapse[aria-expanded='true']").attr("aria-label","close " + bob);
            

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="sub_p01 togSubList">

        <button class="sub-expand_collapse" aria-expanded="false">
            <i class="fa fa-plus" aria-hidden="true"></i>
        </button>

        <a id="subLnk_01" class="parent_link menu_p01" href="m01_c01_p01.html"><strong>Space saving widgets</strong></a> 
        <ul aria-labelledby="subLnk_01" class="sub_items">
            list of links
        </ul>
    </li>

答案 1 :(得分:0)

因为你已经遍历每个&#34; .togSubList&#34;你不需要遍历其中的每个切换按钮。只需使用&#34;这个&#34;作为参考和目标两者。

唯一的问题是,只要按钮展开/折叠,您就需要重新运行该功能。

$(".togSubList").each(function () {
    var bob = $(this).find(".parent_link").text();
    //console.log(bob);
    $(".sub-expand_collapse[aria-expanded='false']", this).attr("aria-label","expand " + bob);
    $(".sub-expand_collapse[aria-expanded='true']", this).attr("aria-label”,”close " + bob);        
});