oneliner -javascript:渲染父标签的属性?

时间:2013-11-22 09:25:03

标签: javascript jquery html

<div id="Blah">
  <h2>Blubb</h2>
  <p>Lorem ipsum ...</p>
</div>

出于测试目的,我需要一个单行js,在h2中呈现“Blah”,就像这里:

<div id="Blah">
  <h2>Blubb (Blah)</h2>
  <p>Lorem ipsum ...</p>
</div>

我知道用jquery会很容易,但我绝对是JS / JQuery初学者...

就像在这里一样:get href attribute of enclosing link tag

但我不知道如何在我的HTML中调用它。请添加minial完整的html文件,而不仅仅是jquery片段......

5 个答案:

答案 0 :(得分:1)

尝试

jQuery(function ($) {
    $('div.myclass > h2').text(function (_, text) {
        return text + " (" + $(this).parent().attr('myattr') + ")";
    })
})

演示:Fiddle

答案 1 :(得分:0)

$("h2").text($("h2").text()+" (Blah)");
//or if you want div "Blah" id set as append text then 

$("h2").text($("h2").text()+" ("+$(this).closest("#Blah").attr('id')+")");

答案 2 :(得分:0)

尝试

fiddle Demo

jQuery(function () {
    $('#Blah h2').text(function (_, old) {
        return old + '(' + $(this).parent().attr('id') + ')';
    });
})

答案 3 :(得分:0)

var a = $('h2:contains("Blubb")').text();
$('h2:contains("Blubb")').text(a+' (Blah)')

答案 4 :(得分:0)

另一种选择是

$h2 = $('div > h2');
$h2.append(' ('+$h2[0].parentNode.id+')');

FIDDLE