检查元素jquery的id

时间:2014-04-28 08:09:13

标签: jquery

我有3个不同的对象,有3个不同的id,我要传递给一个函数。我想检查哪个ID被发送到该函数,然后为每个id发出不同的警告。我有这个代码,但它不起作用,我不确定它是否完全正确或可能这样做。使用$(this),我试图获取我当前正在拖动的元素并将其发送到checkForID函数。

$(document).ready(function() {

 $('#option1').draggable();
 $('#option2').draggable();
 $('#option3').draggable();

 checkforID($(this));

 });

 function checkforID(value)
{
  if(value == $('#option1')
  alert('You've picked option1');
  else  if(value == $('#option2')
  alert('You've picked option2');
  else  if(value == $('#option3')
  alert('You've picked option3');

}

4 个答案:

答案 0 :(得分:2)

您还没有给出您调用checkforID的位置的任何背景信息,但我会假设this指的是DOM元素,例如在jQuery事件处理程序中。

如果您传入jQuery对象(看起来像是):

var id = value.attr("id");

...它将为您提供集合中第一个元素的id(jQuery对象是集合;在引用的代码中,集合将只有一个元素)。

如果你只传入一个元素:

var id = value.id;

重新评论:

  

我实际上是想传递我正在拖动的元素的id。请问(这个)不起作用吗?

this是正确的,它是被拖动的元素(除非你想要,否则不需要将它包装在jQuery对象中),前提是代码在任何可拖动的事件处理程序中,例如startstopdrag。这是一个示例(请注意事件处理程序):Live Copy

<!DOCTYPE html>
<html>
<head>
<link href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>Drag example</title>
  <style>
    .draggable {
      display: inline-block;
      border: 1px solid black;
      background-color: #aaa;
      width: 50px;
      height: 50px;
    }
  </style>
</head>
<body>
  <div id="display">&nbsp;</div>
  <div id="d1" class="draggable"></div>
  <div id="d2" class="draggable"></div>
  <div id="d3" class="draggable"></div>
  <script>
    (function() {
      var display = $("#display");
      $(".draggable").draggable({
        start: function(event, ui) {
          display.html("You're dragging " + this.id);
        },
        stop: function(event, ui) {
          display.html("You stopped dragging");
        }
      })
    })();
  </script>
</body>
</html>

答案 1 :(得分:1)

在您的代码 checkforID($(this))中,$(this)会将全局window对象发送到该函数。

请发送适当的对象

答案 2 :(得分:1)

将其更改为:

 function checkforID(value)
{
  var id = $(value).attr('id');
  if(id == '#option1')
  alert("You've picked option1");
  else  if(id == '#option2')
  alert("You've picked option2");
  else  if(id == '#option3')
  alert("You've picked option3");

}

答案 3 :(得分:0)

好像您正在寻找 .is()

function checkforID(value) {
  if(value.is('#option1')) alert("You've picked option1");
  else if(value.is('#option2')) alert("You've picked option2");
  else if(value.is('#option3')) alert("You've picked option3");
}