jQuery javascript检查页面上是否存在某些html的方式

时间:2012-11-25 23:42:23

标签: javascript jquery

在添加更多代码之前,我想确保:

<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执行此操作的最佳方法是什么?

由于

4 个答案:

答案 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, '&amp;');

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
}