2
<ul>
<li id="RadListBox1_i2" class="rlbItem ui-draggable">

    <div class="ui-draggable ui-state-default" data-shortid="1007">
    <em>ProductId: </em>
    <span>110-01-070-10</span>
    <br>
    <em>ShortID: </em>
    <span class="ShortID" data-shortid="1007">1007</span>
    <br>
    <em>Product Name: </em>
    <span>Clearly Retro Style Colour Name Necklace</span>
    <br>

    <em>
    </div>
    </span>
    </li>
    <li id="RadListBox1_i3" class="rlbItem ui-draggable">
    <li id="RadListBox1_i4" class="rlbItem ui-draggable">

</ul>

我需要构建选择器来查找包含 id=X 的元素并通过.draggable('disable');

有人这样想:

在哪里找到 y 类data-shortid=X并制作它

$("ul li").find(".ShortID").attr("data-shortid="+X+).draggable('disable');

回答 :

$("span.ShortID[data-shortid="+ShortId+"]").parents("li:first").draggable("disable");

4

6 回答 6

2

您需要禁用 li,而不是跨度,因此您需要找到父级:

$("span.ShortID[data-shortid=1007]").parents("li").draggable("disable");
于 2013-08-05T07:22:40.893 回答
1

使用此代码:

$("ul li.ShortID[data-shortid="+X+"]").draggable('disable');

编辑:

   var obj = $("ul li span.ShortID");
   var ids = obj.attr("data-shortid");
   if(ids == X) {
     obj.draggable('disable');
   }
于 2013-08-05T07:20:48.990 回答
1
$(".ShortID[data-shortid=1007]")

Above code will return you the element with class="ShortID" and attribute data-shortid="1007"

When the element is picked, you can do anything you want with it.

于 2013-08-05T07:21:41.187 回答
1

试试这个(jQuery 属性等于选择器):

$("ul li .ShortID[data-shortid='"+X+"']").draggable('disable');
于 2013-08-05T07:21:44.077 回答
0

来自JQuery 文档

$( ",someclass[data-id='yourid']" ).dosomething();
于 2013-08-05T07:20:18.150 回答
0
$("ul li").find(".ShortID").attr("data-shortid="+X+).draggable('disable');

会发现所有元素都在一个 ul li 中,该 ul li 有一个类 .ShortID。通过属性和值获取元素。你可以做

$("div[data-shortid=" + x );

请注意,在您的示例中,您必须使用相同的 ID 进行 div。

http://api.jquery.com/attribute-equals-selector/

顺便提一句。继续使用 find 在您的示例中进行更深的嵌套,这将有助于提高性能。

于 2013-08-05T07:27:53.497 回答