var PathSet = $(this).attr('p');
var folderPathSize = PathSet.substring(1, PathSet.length).split('/');
var folderPath = PathSet;
var arrayPath = new Array();
var num = 0;
if(folderPathSize.length > 1)
{
for(j = 0; j < folderPathSize.length; j++)
{
if(j != folderPathSize.length - 1)
{
folderPath = folderPath.substring(0, folderPath.lastIndexOf('/'));
arrayPath[num] = folderPath;
num = num + 1;
}
}
arrayPath.reverse();
}
arrayPath[num] = PathSet;
for(k = 0; k < arrayPath.length; k++)
{
alert(arrayPath[k]); //正常输出
var PathLink = $("<a>");
PathLink.append(arrayPath[k].substring(arrayPath[k].lastIndexOf('/') + 1));
PathLink.bind('click', function()
{
alert(arrayPath[k]); //输出undefined
//$(".leftBlock").remove(); //******* 需要处理的地方
});
$('#track').append(" -> ");
$('#track').append(PathLink);
}
});Question1 : 为什么第2个alert输出undedined 怎么能正常输出
Question2 : //$(".leftBlock").remove(); 这行代码 我想要的效果是 remove 所有在 class=leftBlock且id=arrayPath[k] 之后的DIV。
请大家帮看看,多谢。
alert(arrayPath[k]); //正常输出
var PathLink = $("<a>");
PathLink.append(arrayPath[k].substring(arrayPath[k].lastIndexOf('/') + 1));
PathLink.tmp = arrayPath[k]; //定义个属性,值设为array[k]
PathLink.bind('click', function() {
alert(this.tmp);
});
$('#track').append(" -> ");
$('#track').append(PathLink);
}
for(k = 0; k < arrayPath.length; k++)
{
alert(arrayPath[k]); //正常输出
var PathLink = $("<a>");
PathLink.append(arrayPath[k].substring(arrayPath[k].lastIndexOf('/') + 1));
PathLink.bind('click', function(此处需要传参或者将这个click方法写成闭包)
{
alert(arrayPath[k]); //输出undefined
//$(".leftBlock").remove(); //******* 需要处理的地方
});
$('#track').append(" -> ");
$('#track').append(PathLink);
}
第二个
$("#arr + div[class = 'leftBlock']").remove();
{
var PathLink = $("<a>");
var a = '\'#' + arrayPath[k] + '\'';
PathLink.append(arrayPath[k].substring(arrayPath[k].lastIndexOf('/') + 1));
PathLink.bind('click', function()
{
$(a).remove();
});
$('#track').append(" -> ");
$('#track').append(PathLink);
}
但是$(a).remove(); 这行报错了 错误是Uncaught Syntax error, unrecognized expression: '#/123/678'
a的值是 ‘#/123/678'
其实这个div的id 是/123/678现在的问题是 我想取这个div 用JQuery怎么来写 谢谢大家
回复4楼 #arr 这个arr代表什么 我没明白
//var a = '\'#' + arrayPath[k] + '\'';
var a = '#' + arrayPath[k];//如果上面的方法不行的话,先用js获取这个元素对象再转为jQuery对象试试
var a = '#' + arrayPath[k];
PathLink.bind('click', function() {
var obj = document.getElementById(a.substring(1));
$(obj).remove();
});
//如果上面的方法不行的话,先用js获取这个元素对象再转为jQuery对象试试
var a = '#' + arrayPath[k];
PathLink.bind('click', function() {
var obj = document.getElementById(a.substring(1));
$(obj).remove();
});
这样写 起到作用了 但是只执行了一次 这段代码 是在一个循环里的 第2次以后就不执行了不知道是什么原因另外 我想要的效果是 remove 所有在id=arrayPath[k] 之后的DIV
{
var PathLink = $("<a>");
var a = arrayPath[k];
PathLink.append(arrayPath[k].substring(arrayPath[k].lastIndexOf('/') + 1));
PathLink.bind('click', function()
{
var obj = document.getElementById(a);
$(obj).nextAll('div').remove(); //这行代码没有执行成功。
});
$('#track').append(" -> ");
$('#track').append(PathLink);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
var obj = document.getElementsByTagName('span');
for (var k = 0; k < obj.length; k ++) {
with({k:k}) {
$(obj[k]).bind('click', function() {
alert(k);
});
}
}
});
</script>
</head><body>
<span>111</span><span>222</span><span>333</span>
</body>
</html>