3

我将第一个 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');
4

5 回答 5

2

你只是忘记了空间:

$(uiID + " div:first").attr('id','dropped1'); 

这应该没问题。

Oups 可能是你也忘记了 # :

uiID = "#" + $(ui.draggable).attr("id");

jsfiddle:http: //jsfiddle.net/mZZjc/

于 2013-10-22T20:38:38.957 回答
1

为什么不简单地使用:

$('div div:first-child');

参考:

http://api.jquery.com/first-child-selector/

于 2013-10-22T20:33:21.880 回答
0

您缺少#ID 之前和选择器中元素之间的空格。它应该是:

$("#" + uiID + " div:first").attr('id','dropped1');

或者:

$("#" + uiID).find("div:first").attr('id','dropped1');
于 2013-10-22T20:53:41.733 回答
0
var uiID = $(ui.draggable).attr("id");

$("#" + uiID + "> div:first-child").attr('id','dropped1');

我认为这是唯一正确的解决方案。

您需要一个 ID 的哈希值,然后您需要直接后代( >) 和第一个孩子。

于 2013-10-22T20:56:13.277 回答
0

您可以使用

uiId.find('div:nth-child(1)').attr('id','dropped1');
于 2013-10-22T20:36:13.003 回答