使用返回函数sinde.attr()jquery元素
use return function sinde .attr() jquery element
在我的网站上,我包含了一个输入字段和一个按钮。输入字段用于输入youtube视频代码。点击按钮后,我希望我的网站使用"www.youtube.com/watch?v="创建一个新的href,并将输入字段中输入的任何代码添加到其中。然后,youtube视频应该在灯箱中打开(使用prettyPhoto,我已经安装了它,它运行得很好)。
这是我迄今为止的代码:
<div>
<br>
<input type="text" style="text-align:center" placeholder="Video Code" id="code_input">
<br>
<br>
<div>
<a href="#" id="youtube" rel="prettyPhoto">
<button type="button" id="button" onclick="MyFunction">Jetzt anschauen!</button>
<script type="text/javascript">
function MyFunction () {
var baselink="https://www.youtube.com/watch?v=";
var youtube_code=document.getElementById("code_input").value;
var new_link=baselink.concat(youtube_code);
}
$('#youtube').attr("href", function() {
return new_link;
});
</script>
</a>
</div>
</div>
每当我输入youtube视频代码并点击按钮时,灯箱就会打开,但会返回以下内容:
屏幕截图
有人能看看我的代码,告诉我哪里出了问题吗?或者请向我解释如何根据输入字段数据动态创建新的href,以及如何将其输入到标记中。
非常感谢你的帮助!!
发现以下代码解决了问题:
<div>
<br>
<input type="text" style="text-align:center" placeholder="Video Code" id="code_input">
<br>
<br>
<div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
var ycode = document.getElementById("code_input").value;
$('#youtube').attr("href", function(){
return "https://www.youtube.com/watch?v=" + ycode;
});
});
});
</script>
<a href="#" id="youtube" data-lity>
<button type="button" id="button">Jetzt anschauen!</button>
</a>
</div>
</div>
问题是您的new_link变量是在函数内部创建的,因此无法从其作用域之外访问。
我建议对输入字段使用更改事件,以确保按钮的href属性在单击之前得到更新:
<div>
<input type="text" style="text-align:center" placeholder="Video Code" id="code_input">
<div>
<a href="#" id="youtube" rel="prettyPhoto">
Jetzt anschauen!
</a>
</div>
</div>
$('#code_input').on('change', changeLink);
function changeLink() {
var baselink="https://www.youtube.com/watch?v=";
var youtube_code = document.getElementById("code_input").value;
var new_link = baselink.concat(youtube_code);
$('#youtube').attr("href", new_link);
}
同样,通过这种方式,您不需要使用内联JavaScript来添加事件侦听器。
此外,在链接中嵌套按钮元素是无效的HTML,因此您应该考虑将其删除
相关文章:
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 使用返回函数sinde.attr()jquery元素
- Wooccommerce所有JS和Jquery元素都未加载
- 追加JQuery元素和Angular
- 如何获取jQuery集合中的第k个元素..作为JQUERY元素
- 是否存在jQuery元素选择库的最小化版本
- 不能同时通过类和数字 ID 选择 jquery 元素
- 为什么jquery元素在ipad上没有响应
- Jquery元素用法
- 用于获取jQuery元素或值的方法
- 淡入淡出切换jquery元素
- 用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
- 选择具有由 data() 设置的某个值的 JQuery 元素
- Jquery 元素的高级过滤
- 链接到另一个带有jQuery元素的页面
- jQuery:通过 .wrap() 添加到 DOM 的 jQuery 元素上的切换类
- 将字符串转换为 jquery 元素并将其追加到 DOM 中
- 与“click”事件一起存储的jQuery元素未按要求工作
- 在哈希数组中保存对 jquery 元素的引用
- 如何从核心JavaScript选择中获取jquery元素