按属性的部分值

时间:2017-01-30 07:21:59

标签: javascript jquery html

我的页面上img(id = iframe1)内有一些iFrame个标签。 其中一些src属性设置为myimg.jpg,'myimg_small.jpg',myimg_large.jpg等。

我正在尝试在#iframe1内找到src 的所有内容,例如 myimg,所以我写了

images = $('#iframe1').contents().find('[src*="myimg"]')

但我收到错误如下

  

未捕获错误:语法错误,无法识别的表达式:   [SRC * = “myimg”])

     

在Function.Sizzle.error(jquery-1.8.2.js:4679)
  在tokenize(jquery-1.8.2.js:4739)
  在select(jquery-1.8.2.js:5099)
  在select(jquery-1.8.2.js:5276)
  在Function.Sizzle [as find](jquery-1.8.2.js:3941)
  在init.find(jquery-1.8.2.js:5372)
  在< anonymous>:1:36

这里有什么问题?

更新

alert($('#if').contents().find('[src*="ss"]').next().html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe id='if'>
  <img src='sss.jpg' />
  <div>
    scdscd
  </div>
</iframe>

5 个答案:

答案 0 :(得分:0)

简单地说:

var x = $("img[src$='myimg.jpg']");
alert(x.attr("src"));

答案 1 :(得分:0)

使用contains selector,并按照comments中提到的Enfyve删除额外的)

images = $('#iframe1').contents().find('[src~="myimg"]')

答案 2 :(得分:0)

使用iframe是错误的。 iframe必须使用src属性并使用它来加载其他页面的内容。 iframe不需要将其子元素直接包含在其标记中。

你可以试试这个。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe id='if' src="1.html">
</iframe>


//1.html
...
  <img src='sss.jpg' />
  <div>
    scdscd
  </div>

你可以尝试以下。

alert($('#iframe1').contents().find('[src*="ss"]').next().html());

答案 3 :(得分:0)

选择器正常工作。你可以看到工作jsbin here

错误地使用iframe会导致您的问题。

如果要向iframe添加内容,则必须使用src属性或使用srcdoc属性的HTML字符串指定网址。

  

srcdoc属性指定要在内联框架中显示的页面的HTML内容。

参考iframe srdoc

答案 4 :(得分:0)

确保您的iframe src定位到与您的主页相同的域。否则,您无权访问iframe内容。这称为XSS(跨站点脚本),主要浏览器阻止它。

如果您的iframe来源位于同一个域中但仍然无法访问该内容,请务必设置setTimeout等待iframe内容加载,因为iframe内容会在之后开始加载主页面已加载。