0

可以说我有这个代码:

<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”的子元素和“类型”(输入/标记名)中获取元素属性值,这样我就可以将值存储在变量中。

目前我可以获取元素并存储在 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);
});

谢谢!

卡尔

4

1 回答 1

0

你的代码有点矫枉过正。

  1. .live() 在 jQuery 1.7 中已弃用,并在 1.9 中完全删除,jquery 文档说您应该使用 .on() 代替。
  2. 一切都很简单。您可以尝试以下方法:
$('.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 ) 的快捷方式
于 2013-11-01T11:16:42.480 回答