我的页面上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>
答案 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内容。
答案 4 :(得分:0)
确保您的iframe src
定位到与您的主页相同的域。否则,您无权访问iframe内容。这称为XSS(跨站点脚本),主要浏览器阻止它。
如果您的iframe来源位于同一个域中但仍然无法访问该内容,请务必设置setTimeout
等待iframe内容加载,因为iframe内容会在之后开始加载主页面已加载。