【发布时间】:2018-04-20 01:40:05
【问题描述】:
我正在尝试遍历几个 iframe 以获取 iframe 的 src 并从这些 iframe 的 src 中删除特定的查询字符串。这是我目前所拥有的:
$(document).ready(function() {
$('iframe').each(function() {
var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('&id'));
alert($src);
});
});
iframe {
width: 300px height:300px;
background: #fafafa;
margin: 20px auto;
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe src="mysite.com/program.asp?name=abc&status=3&id=2"></iframe>
<iframe src="mysite.com/program.asp?id=2"></iframe>
iframe 的第一个 url 显示正确,但第二个 iframe 的第二个 url 没有。
预期输出:
first iframe - mysite.com/program.asp?name=abc&status=3
second iframe - mysite.com/program.asp?
【问题讨论】:
-
在第二个函数中,indexOf 返回 -1,因此您计算的是一个空字符串 substring(0, -1)。看起来很正常,但它不起作用
-
this.src应该可以访问。我不知道你为什么在那里做 jQuery。 -
您正在寻找专门的
&id=但第二个是?id=- 您需要使用正则表达式:[&?]id=(或调用 replace 两次)。 -
你也有有限的用例,例如如果你有:
?status=3&id=2&name=abc,那么你应该得到?status=3&name=abc,但你得到?status=3。我建议只使用链接副本中的各种选项之一。