检查对象的名称中是否包含具有特定数字的类

时间:2017-07-21 20:30:37

标签: javascript jquery numbers

我的情况如下:我有几个名为obj1,obj2,ob3和输出对象的类。当单击obj#之一时,我希望在输出对象中添加相应的文本。这是我的代码:

<div class="obj obj1">Object 1</div>
<div class="obj obj2">Object 2</div>
<div class="obj obj3">Object 3</div>
<div class="output"></div>

和JavaScript:

function whichObject($obj) {
for (i = 0; i < 3; i++) {
  switch($obj.hasClass("obj" + (i+1).toString())) {
    case "obj1":
      $(".output").text("Object 1");
      break;
   case "obj2":
      $(".output").text("Object 2");
      break;
   case "obj3":
      $(".output").text("Object 3");
      break;
   }
}

$(".obj").on("click", function () {
   whichObject($(this));
});

我需要循环,因为obj#对象的数量可能会随着时间的推移而增加,我无法预测一定数量的obj#对象。

我肯定错过了一些东西,或者整个方法都是错误的。

2 个答案:

答案 0 :(得分:2)

&#13;
&#13;
$('.obj').on('click', function(e){
  $('.output').text(e.target.innerHTML);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="obj obj1">Object 1</div>
<div class="obj obj2">Object 2</div>
<div class="obj obj3">Object 3</div>
<div class="output"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

所以,如果有人感兴趣我就这样解决了:

function whichObject(obj) {
  var $obj = $(obj);
  if ($obj.attr("id") === "obj1") {
    $(".output").text("Object 1");
  } else if ($obj.attr("id") === "obj2") {
    $(".output").text("Object 2");
  } else if ($obj.attr("id") === "obj3") {
    $(".output").text("Object 3");
  } 
}

$(".obj").on("click", function () {
whichObject(this);
});

将以下ID添加到我的HTML中:

<div class="obj" id="obj1">Object 1</div>
<div class="obj" id="obj2">Object 2</div>
<div class="obj" id="obj3">Object 3</div>
<div class="output"></div>