如何检查表中是否存在视频ID

时间:2016-11-08 07:54:30

标签: jquery

我有一个如下所示的表格,我正在尝试检查表格中是否存在视频ID

<div class="portlet-body">
    <table class="mytable1 table table-bordered table-hover" id="videosfromtagstable">
       <tbody class="connectedSortable ui-sortable">
           <tr class="existingvideos">
               <th>Name</th>
               <th>Video</th>
          </tr>
          <tr video-id="6" class="newvideos" style="display: table-row;">
              <td>One</td>
              <td><a href="xxx" target="_blank">xxx.jpg</a></td>
          </tr>
          <tr video-id="48" class="newvideos">
              <td>Two</td>
              <td><a href="xxx" target="_blank">xxx.jpg</a></td>
          </tr>
    </tbody>
</table>

我正在检查它,这是有效的,但是如果这是正确有效的程序,请你告诉我吗?

var checkvalue =  checkifVideoExists(48);
alert(checkvalue);

function checkifVideoExists(videoid) {
    var flag = false;
    $('#videosfromtagstable > tbody  > tr').each(function() {
        if ($(this).attr('video-id') == videoid) {
            flag = true;
            return false;
        } else {
            return true;
        }
    });
    return flag;
}

http://jsfiddle.net/e08o7uct/37/

3 个答案:

答案 0 :(得分:2)

不需要循环和所有,你可以简单地使用属性选择器来查找元素并检查它的长度,如果它是0则不存在其他明智的元素。

SELECT * from @T 
WHERE DATEDIFF(dd,GETDATE(),DATEADD(yy,79,dob))<45
AND 
DATEDIFF(dd,GETDATE(),DATEADD(yy,79,dob))>0

详细了解属性选择器here

答案 1 :(得分:2)

这不是有效的方法。通过它的属性更好地选择元素:

function checkifVideoExists (videoid) {
    return $('#videosfromtagstable [video-id="'+videoid+'"]').length > 0;
}

答案 2 :(得分:2)

首先video-id不是有效属性,其使用会使您的HTML无效。相反,您应该使用data-*属性来存储带元素的自定义元数据。

为了更有效地实现您的需求,您可以使用filter()查找具有required属性的元素。试试这个:

&#13;
&#13;
var checkvalue = checkifVideoExists(48);
console.log(checkvalue);

function checkifVideoExists(videoid) {
  var $tr = $('#videosfromtagstable > tbody > tr').filter(function() {
    return $(this).data('video-id') == videoid;
  });
  return $tr.length != 0;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="portlet-body">
  <table class="mytable1 table table-bordered table-hover" id="videosfromtagstable">
    <tbody class="connectedSortable ui-sortable">
      <tr class="existingvideos">
        <th>Name</th>
        <th>Video</th>
      </tr>
      <tr data-video-id="6" class="newvideos" style="display: table-row;">
        <td>One</td>
        <td><a href="xxx" target="_blank">xxx.jpg</a>
        </td>
      </tr>
      <tr data-video-id="48" class="newvideos">
        <td>Two</td>
        <td><a href="xxx" target="_blank">xxx.jpg</a>
        </td>
      </tr>
    </tbody>
  </table>
</div>
&#13;
&#13;
&#13;