例如,我有简单的 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()
函数之前运行良好;我究竟做错了什么?我应该如何选择我需要的元素?