例如,我有简单的 html。
<body>
<div class="a">
<div class="child"></div> <!-- div element I click -->
<div class="childINeedToSelect"></div> <!-- div element I need to be selected -->
<div class="child"></div>
</div>
<div class="a">
<div class="child"></div>
<div class="childINeedToSelect"></div>
<div class="child"></div>
</div>
</body>
当我单击顶部的第一child类 div 时,我需要更改,例如,仅第一childINeedToSelect类 div 的边框。它们具有相同的父a类 div,但难点在于 class 的元素不止一个a。我已经尝试过:
$(document).ready(function () {
var child = $('.child');
child.bind('click', function() {
detectElement($(this));
});
});
var belt;
function detectElement(arrow) {
belt = arrow.parent('.a').children('childINeedToSelect').eq(1);
belt.css("background-color", "red");
}
如您所见,我试图$(this)作为参数发送detectElement()以确定单击了哪个 div。但是我的目标div背景没有改变,当我稍后尝试使用元素时belt,在被函数检测到detectElement()后,Opera javascript调试器给了我错误
Unhandled Error: Cannot convert 'belt.css('marginLeft')' to object
排队
var currentMargin = parseInt(belt.css('marginLeft').toString().replace('px', ''));
但这行代码在调用detectElement()函数之前运行良好;我究竟做错了什么?我应该如何选择我需要的元素?