原始html只有2个超链接。
我想
但结果是两个按钮警告“bhref”。
<?php
echo file_put_contents("test.txt","Hello World. Testing!");
?>
答案 0 :(得分:5)
您需要使用一些closure,例如:
$(document).ready(function () {
$('a').each(function () {
var get_href = $(this).attr("href");
var new_ele = $("<button type='button'>test</button>");
(function (get_href) {
new_ele.click(function () {
alert(get_href);
});
})(get_href);
$(this).append(new_ele);
});
});
现在,如果您遇到关于闭包和each
循环的这类问题,通常会有更好的方法来处理它。参见例如获得相同预期行为的其他方式:
$(document).ready(function () {
var new_ele = $("<button type='button'>test</button>").on('click', function () {
alert($(this).parent().attr('href'));
});
$('a').append(new_ele.clone(true));
});
答案 1 :(得分:0)
只添加1“var”使其工作..
如果没有'var'定义变量,则表示您定义全局变量
全局变量只有1个引用,
这意味着
如果全局变量发生变化,则全部变化
即使那时的“href值”是正确的
如果我将变量视为对象,那么一切都有意义。
这就是为什么我总是得到最后一个href值。
我还是这种语言的新手。
$(document).ready(function () {
$('a').each(function () {
var get_href = $(this).attr("href");
new_ele = $("<button type='button'>test</button>");
new_ele.click(function () {
alert(get_href);
});
$(this).append(new_ele);
});
});