属性值显示为undefined

时间:2014-02-18 12:11:46

标签: javascript jquery

以下是获取属性值的HTML和JavaScript代码。但我没有得到任何输出。控制台说'未定义'

<div class="desktop">
  <h2 class="level3_sub" data-bookmark-flag="3">Lorem ipsum dolor</h2>
  <p class='normal_p'> dfsdfsdfsdfsdf</p>
  <p class='normal_p'> dfsdfsdfsdfsdf</p>
</div>

<div class="desktop">
  <h2 class="level3_sub" data-bookmark-flag="3">Lorem ipsum dolor</h2>
  <p class='normal_p'> dfsdfsdfsdfsdf</p>
  <p class='normal_p'> dfsdfsdfsdfsdf</p>
</div>

使用Javascript:

$( ".dekstop .normal_p" ).each(function( index ) {    
    var attId   = $(this).parent(".level3_sub").attr('data-bookmark-flag');
    onsole.log($(this).attr('data-bookmark-flag'));
    console.log( index + ": " + $( this ).text() );
});

4 个答案:

答案 0 :(得分:0)

试试这个

<div class="desktop">
       <h2 class="level3_sub" data-bookmark-flag="3">Lorem ipsum dolor</h2>
       <p class='normal_p'> dfsdfsdfsdfsdf</p>
       <p class='normal_p'> dfsdfsdfsdfsdf</p>
 </div>

$( ".desktop .normal_p" ).each(function( index ) {

    var attId   = $(this).parent().children(".level3_sub").attr('data-bookmark-flag');
    console.log(attId);
});

答案 1 :(得分:0)

 $( ".dekstop .normal_p" ).each(function( index ) {

    var attId   = $(this).parent().find(".level3_sub").attr('data-bookmark-flag');

    console.log( attId   );
});

答案 2 :(得分:0)

“。level3_sub”是“.normal_p”的兄弟,而不是父母。

所以,试试这段代码

$( ".dekstop .normal_p" ).each(function( index ) {
     var attId   = $(this).siblings(".level3_sub").attr('data-bookmark-flag');
     console.log(attId);
     console.log( index + ": " + $( this ).text() );
});

答案 3 :(得分:0)

您必须使用与“normal_p”相同的方式声明“桌面”类:

<div class="desktop">

不要忘记关闭你的第二个div。