我正在构建一个角度应用程序,其中一个按钮应该在div中附加一个blockquote但这只有在块引用不在HTML中时才可能。
因此,我正在考虑使用以下代码在html中查找字符串<blockquote id='myBlockquote'>
,但它无效:
if ((myHTML.indexOf('<blockquote id="myBlockquote">') = -1)) {
myHTML.append('some HTML');
}
我做错了什么?
干杯
答案 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.
}