jQuery:问题使用.find()命令

时间:2011-05-10 17:17:45

标签: javascript jquery ajax

我将外部网页的整个HTML内容传递给javascript变量(“myHTML”)。接下来,我试图确定myHTML变量中是否存在两个具有特定属性的不同标记。我正在寻找某个<div>代码和<script>代码的存在。我能够识别<div>标记:

alert($(myHTML).find('div[id^="myID"]').length)

以上代码返回正确的计数。但是,我无法找到<script>标记(即使它确实存在于页面/ myHTML变量中):

alert($(myHTML).find('script[src*="example.com"]').length)

上面的代码总是返回零,即使有一个<script>标记,其src属性指向“... example.com /...”。

任何人都可以解释为什么第一行代码有效,而第二行代码失败?这个问题有什么解决方案吗?

1 个答案:

答案 0 :(得分:4)

之前在此讨论过:jquery: Keep <script> tag after .find()

每当您从字符串创建jQuery对象时,jQuery都会删除所有脚本标记。解决方案是在将字符串转换为对象之前使用正则表达式解析字符串。