在添加更多代码之前,我想确保:
<a href='index.php?option=com_content&view=article&id=36'>Hello</a>
不在div里面的html页面上,其中id ='faqs'
<div id='faqs'>
<a href='index.php?option=com_content&view=article&id=36'>Hello</a>
</div>
使用jquery或javascript执行此操作的最佳方法是什么?
由于
答案 0 :(得分:0)
最简单的方法是使用jQuery选择元素,并检查结果对象的length
属性:
var anchor = $('#faqs a[href="index.php?option=com_content&view=article&id=36"]')
if(anchor.length == 0) {
// element isn't on the page
}
答案 1 :(得分:0)
如果目标是在div标签中将a标签作为子标签,那就是它,那么就不要费心检查,只需重新添加它,如下所示:
$('#faqs').html('');
$('<a />')
.attr('href', 'index.php?option=com_content&view=article&id=36')
.html('hello')
.appendTo($('#faqs'));
但是,如果你真的需要检查它是否存在,那么你可以这样做:
var exists = $('#faqs a[href="index.php?option=com_content&view=article&id=36"]').length > 0;
更新
在html中查找字符串可以按如下方式完成,但这不是推荐的解决方案。您可能会遇到以不同方式编码html的不同浏览器等问题(在chrome中测试):
var stringToFind = '<a href="index.php?option=com_content&view=article&id=36">Hello</a>';
// need to replace the & ...
stringToFind = stringToFind.replace(/&/g, '&');
var exists = $('#faqs').html().indexOf(stringToFind) > -1;
if (exists) {
// do something
} else {
// do something else
}
这是一个有效的例子 - &gt; http://jsfiddle.net/Uzef8/2/
答案 2 :(得分:0)
您可以使用indexOf
进行搜索var inBlock = $('#faqs').html();
if (inBlock.indexOf("<a href='index.php?option=com_content&view=article&id=36'>Hello</a>") == -1) {
$('#faqs').append ("<a href='index.php?option=com_content&view=article&id=36'>Hello</a>");
}
答案 3 :(得分:0)
if (!$('a[href$="view=article&id=36"]', '#faqs').length) {
//does'nt exist
}