我想將一個變量從一個函數傳遞給另一個函數,但是var elmId作爲一個對象返回並給出一個錯誤。當我們點擊任何生成的div時,我們應該能夠通過從下拉菜單中選擇寬度/高度值來更改div的大小。Jquery Var返回爲對象
我想通過點擊div ID是elmId函數displayVals,但它不工作。如果我們用函數displayVals中的「#」+ elmId替換爲用「#divid1」創建的第一個div的實際ID,那麼它就起作用。爲什麼var值elmId沒有傳遞到displayVals
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js" type="text/javascript"></script>
<style>
.aaa{width:100px; height:100px; background-color:#ccc;}
button{width:100px; height:20px;}
</style>
<button class="idiv">div</button>
<select id="width">
<option>100px</option>
<option>200px</option>
<option>300px</option>
</select>
<select id="height">
<option>100px</option>
<option>200px</option>
<option>300px</option>
</select>
<p></p>
<script type="text/javascript">
var divId = 1;
$("button").click(function(){
var elm = $('<div id=divid' + divId + ' class=aaa></div>');
elm.appendTo('p');
divId++;
});
$("p").click(function(e){
var elmType = $(e.target)[0].nodeName,
elmId = $(e.target)[0].id;
return displayVals(elmId);
});
function displayVals(elmId) {
var iwidth = $("#width").val();
var iheight = $("#height").val();
$("#"+elmId).css({width:iwidth, height:iheight});
console.log(elmId);
}
$("select").change(displayVals);
displayVals();
</script>
僅供參考,有沒有必要做`$(e.target)[0] .ID;`。當你這樣做時,你將元素放入一個jQuery對象中,然後將其拉回。只要做`e.target.id`。 – user113716 2011-01-09 03:39:26