如何访问status属性的值

时间:2014-10-29 09:31:35

标签: jquery

好的抱歉,现在这是两个问题。

如何从Riversdale遍历到Western Cape

如何访问status属性的值(我认为已经回答了)

但是现在选择正确的属性是一个小问题。

entry = $(this).closest('.expandListContentRow div:nth-child(1)').attr('id');

条目为我提供了正确的ID,但我想访问status属性。

<div class="expandListItem highlight" id="b82e107" status="deactivated">Sandy Bay</div>

如何获取Status属性的值?

这可能会让您了解我想要遍历的列表

<div class="expandListContentRow contentCol2" id="28fa1d89" style="display: block;">
    <div class="expandListItem addNewProv" id="SouthAfrica_button">ADD NEW PROVINCE</div>
    <div class="expandListItem b82e107e highlight" id="b82e107e" status="deactivated">Western Cape</div>
    <div class="expandListContent_sub1">
        <div class="expandListContentRow_sub1 contentCol_sub1 SUB_b82e107e" id="b82e107e" style="display: block;">
            <div class="expandListItem_sub1 addNewCity" id="Antalia_button">ADD NEW CITY</div>
            <div class="expandListItem_sub1 highlight_sub" id="429973ea" status="deactivated">Riversdale</div>
            <div class="expandListItem_sub1" id="b71e53aa" status="deactivated">Ashton</div>
            <div class="expandListItem_sub1" id="a3fcad14" status="deactivated">Cape Town</div>
            <div class="expandListItem_sub1" id="5dcbf222" status="deactivated">Somerset West</div>
        </div>
    </div>
</div>

因此,如果我想激活Riversdale,我需要在此实例中激活父级Western Cape。我之前显然已经走错了,所以你如何从RiversdaleWestern Cape

3 个答案:

答案 0 :(得分:1)

您需要在.attr()中传递属性名称才能获取值。您有一些元素的重复ID。这是错的。你也有不正确的选择器来定位所需的div。使用方法:

entry = $(this).closest('.expandListContent_sub1').prev().attr('status');

您应该注意,在HTML中使用非规范属性会导致页面无效。请改用data- *属性:

<强> DOM:

<div class="expandListItem highlight" id="b82e107" data-status="deactivated">Sandy Bay</div>

<强> JS:

entry = $(this).closest('.expandListContent_sub1').prev().data('status');

答案 1 :(得分:1)

您可以使用attr()属性执行相同操作。

 entry = $(this).closest('.expandListContentRow div:nth-child(1)').attr('id');
 var status = $(this).closest('.expandListContentRow div:nth-child(1)').attr('status');

但是对于porper w3c验证,请使用html5数据属性。

 <div class="expandListItem highlight" id="b82e107" data-status="deactivated">Sandy Bay</div>

 $(this).closest('.expandListContentRow div:nth-child(1)').data('status');

答案 2 :(得分:1)

正如其他人所说,这应该有效

 $('.expandListItem').attr('status');

但是由于没有得到理想的结果,

也是如此
console.log($(this))
console.log($(this).closest('.expandListContentRow'))
console.log($(this).closest('.expandListContentRow div:nth-child(1)'))

检查问题所在。希望帮助