从没有ID的子元素获取属性值 - JQuery

时间:2013-11-01 10:07:51

标签: attributes children

假设我有这段代码:

<div id="Element_1" class="draggable">
<input type="text" placeholder="Enter Your Text Here" style="width:300px;">
</div>
<div id="Element_2" class="draggable">
<textarea placeholder="Enter Your Text Here" style="width:400px;height:200px;"></textarea>
</div>

我要做的是从“div”的子项和“Type”(输入/标记名)中获取元素属性值,以便将值存储在变量中。

目前我可以在Var中获取元素和存储,这是我的代码:

$(".draggable").live("click",function(){
    var SelectedID = $(this).attr("id");
    $("*").removeClass("selected");   
    var Element = $("#"+SelectedID,":first-child").addClass("selected").html();

    PlaceholderPropValue = $(element).attr("placeholder");
    StylesPropValue = $(element).attr("style");
    WidthProp = StylesProp.match(/(width:)([0-9].*?)(?=px;)/)[2];
    HeightProp = StylesProp.match(/(height:)([0-9].*?)(?=px;)/)[2];
    alert(PlaceholderPropValue+ " " +WidthProp+ " " +HeightProp);
});

谢谢!

卡尔

1 个答案:

答案 0 :(得分:0)

你的代码有点矫枉过正。

  1. .live()在jQuery 1.7中已弃用,在1.9中完全删除,jquery文档说你应该使用.on()代替。
  2. 一切都很简单。您可以尝试以下方式:
  3. $('.draggable').click(function(){
        var $element = $(this).children();
        var width = parseInt($element.width());
        var height = parseInt($element.height());
        var placeholder = $element.attr('placeholder');  
        alert(placeholder+ " " +width+ " " +height);
    })
    
    • .children()方法通常会返回元素的子集,但在您的示例中只有一个,所以没关系。
    • .width()和.height()返回类似“300px”的值,因此我们使用parseInt()来生成int值。
    • .click(handler)是.on(“click”,handler)
    • 的快捷方式