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

Javascript 检查div是否已包含特定项,javascript,jquery,html,css,angularjs,Javascript,Jquery,Html,Css,Angularjs,我正在构建一个angular应用程序,其中一个按钮应该在div中附加一个blockquote,但这应该只有在blockquote不在HTML中时才可能 因此,我想用以下代码在html中查找字符串,但它不起作用: if ((myHTML.indexOf('<blockquote id="myBlockquote">') = -1)) { myHTML.append('some HTML'); } if((myHTML.indexOf(“”)=-1)){ append('someh

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

因此,我想用以下代码在html中查找字符串
,但它不起作用:

if ((myHTML.indexOf('<blockquote id="myBlockquote">') = -1)) {
  myHTML.append('some HTML');
}
if((myHTML.indexOf(“”)=-1)){
append('somehtml');
}
我做错了什么


干杯

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

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

如果所需元素存在或不存在,请尝试使用
.length
检查长度,然后追加

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

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

在作用域中应该有一个包含块引号的数组,如:

$scope.blockquotes = [{id: 1, text: "This is a blockquote"}, {id: 2, text: "This is a blockquote"}, {id: 3, text: "This is a blockquote"}];
以及一个在单击时执行的功能,该功能检查当前用户或某物是否已经添加了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;
   }
  }
}
$scope.addBlockquote=函数(userId){
var=false;
对于(变量i=0;i<$scope.blockquotes.length;i++){
if($scope.blockquotes[i].id==userId){
发现=真;
打破
}
}
}
您的视图或html模板将在blockquotes数组上循环并按如下方式输出它们:

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

我宁愿过度考虑您的解决方案,或许可以将id保存在scope中的数组中,然后查看您是否已经拥有id或类似的内容,性能比解析某些id或元素的dom好得多我收到一个错误,说我的html没有方法。查找我使用typeof检查我的html的类型,我想这是一个字符串你正在使用字符串查找!但我建议你们用物体代替绳子!