检查div是否已包含特定项目

时间:2014-03-12 11:11:57

标签: javascript jquery html css angularjs

我正在构建一个角度应用程序,其中一个按钮应该在div中附加一个blockquote但这只有在块引用不在HTML中时才可能。

因此,我正在考虑使用以下代码在html中查找字符串<blockquote id='myBlockquote'>,但它无效:

if ((myHTML.indexOf('<blockquote id="myBlockquote">') = -1)) {
  myHTML.append('some HTML');
}

我做错了什么?

干杯

3 个答案:

答案 0 :(得分:1)

如果您想要的元素存在与否,请尝试使用.length检查长度,然后附加

if(myHTML.find('#myBlockquote').length > 0) {
  myHTML.append('some HTML');
}

答案 1 :(得分:1)

我建议不要从控制器操作DOM。这是观点的责任。

你应该有一个包含范围内的blockquotes的数组,如:

$scope.blockquotes = [{id: 1, text: "This is a blockquote"}, {id: 2, text: "This is a blockquote"}, {id: 3, text: "This is a blockquote"}];

一个在点击时执行的功能,用于检查当前用户或某些东西是否已添加了一个块引用。

$scope.addBlockquote = function(userId) {
  var found = false;
  for(var i = 0; i < $scope.blockquotes.length; i++) {
   if ($scope.blockquotes[i].id == userId) {
    found = true;
    break;
   }
  }
}

您的视图或简单的html模板将遍历blockquotes数组并输出它们:

<blockquote ng-repeat="quote in blockquotes">{{quote.text}}</blockquote>

答案 2 :(得分:0)

我相信myHTML是字符串而不是DOM对象。您可以将字符串转换为html,然后在其中查找元素的存在:

var elements = $(myHTML);
if(!$('#myBlockquote', elements).length){
   //element does not exists.
}