我将第一个 div 作为变量,并试图更改内部 div 的 id。
我像这样得到uiID
uiID = $(ui.draggable).attr("id");
$(uiID + "div:first").attr('id','dropped1');
<div id="a">
<div id ="b">
</div>
</div>
由于某种原因,这不起作用。我也试过 first()
$(uiID ).first().attr('id','dropped1');
我将第一个 div 作为变量,并试图更改内部 div 的 id。
我像这样得到uiID
uiID = $(ui.draggable).attr("id");
$(uiID + "div:first").attr('id','dropped1');
<div id="a">
<div id ="b">
</div>
</div>
由于某种原因,这不起作用。我也试过 first()
$(uiID ).first().attr('id','dropped1');
你只是忘记了空间:
$(uiID + " div:first").attr('id','dropped1');
这应该没问题。
Oups 可能是你也忘记了 # :
uiID = "#" + $(ui.draggable).attr("id");
jsfiddle:http: //jsfiddle.net/mZZjc/
您缺少#
ID 之前和选择器中元素之间的空格。它应该是:
$("#" + uiID + " div:first").attr('id','dropped1');
或者:
$("#" + uiID).find("div:first").attr('id','dropped1');
var uiID = $(ui.draggable).attr("id");
$("#" + uiID + "> div:first-child").attr('id','dropped1');
我认为这是唯一正确的解决方案。
您需要一个 ID 的哈希值,然后您需要直接后代( >
) 和第一个孩子。
您可以使用
uiId.find('div:nth-child(1)').attr('id','dropped1');