如何通过jquery选择子元素

时间:2013-12-31 15:29:50

标签: jquery html css

<div id="container_security" class="ui-dialog-content ui-widget-content" style="display: block; width: auto; min-height: 0px; height: 485.40000009536743px;">
        <div class="container_sec_class_container" style="display: block;">
            <div class="cont_sec_sec" style="height: 70px;">
                <p class="container_title">
                    Name
                </p>
                <input id="container_name" readonly="readonly" type="text">
                <p class="container_secclass_title">Security Class</p>
                <dl class="container_security_class dropdown">
                    <dt>
                     <span class="parent">
                      <span class="container_secclass_dropdown">Shipping and Receiving</span>

在上面的代码中,我想将title属性设置为上面DOM树的最底层元素。 我想在span为class的span下设置所有子跨度的标题。

我正在尝试下面编写的代码,但它无法正常工作

var dropDownItem = $('#container_security > div > dl > dt > span > span');
dropDownItem.attr('title', dropDownItem.val());

5 个答案:

答案 0 :(得分:3)

我建议使用后代选择器(而不是一系列脆弱的子选择器)及其类:

var dropDownItem = $('#container_security .container_secclass_dropdown');
dropDownItem.attr('title', dropDownItem.val());

但请注意,val不适用于span元素(仅限表单字段),因此dropDownItem.val()部分没有意义。也许你想要.text()

答案 1 :(得分:1)

试试这个:

$spanelements = $("#container_security .container_secclass_dropdown");
$spanelements.attr("title", $spanelements.text());

代码说明:

它几乎选择id为container_security的div,然后向下看为它的后代,然后当它找到类为.container_secclass_dropdown的元素时然后选择该元素,然后设置它的属性。

This问题可能会帮助您选择何种类型的选择器。

This问题可能有助于您选择.text().val()

答案 2 :(得分:1)

只有在你想玩最后一个跨度时才试试这个

$('span:last').attr({title:$('span:last').text()})

或者如果所有父类都跨越,则使用

$(document).ready(function() {
      $('span.parent').children().each(function() {
         $(this).attr({title:$(this).text()});
      });
});

答案 3 :(得分:1)

可能是这样的:正如你所说的那样,你想要将标题设置为范围为parent的范围内的所有范围

$('.parent span').attr("title","Temp Title");

如果您有多个范围,请尝试以下操作..

$('.parent span').each(function() { 
    $(this).attr("title",$(this).html());
});

答案 4 :(得分:0)

此代码选择 DOM树最底层的所有元素,因此在这种情况下,选择最下面的span

CODE

$children = $("body").children();
while ($children.children().length > 0) {
    $children = $children.children();
}
//Now the variable $children is the set of elements at the bottom-most level of DOM.
console.log($children.attr('title', "bottom-most element in DOM tree"));

<强> Fiddle demo