子")[html] 查看纯文本1234567"/>
当前位置:首页 > 美食天地 > $(parent child), $(A B), $(div#test), $(div,#test), $(.test,div)

$(parent child), $(A B), $(div#test), $(div,#test), $(.test,div)

这个标题看起来有点奇怪,但是这些都是合法有效的 jQuery选择器。它们在这里一起列出是因为它们更容易引起混淆。以下示例说明了它们之间的差异。
$("父 > 子")

[html] 查看纯文本


123


456


789


[javascript] 查看纯文本

$('div > span').css('颜色', '#FF0000');

结果如下:

123

456

789

这样理解:在父母的儿子中找到一个孩子。这里,div 有三个儿子:span p 和 span。 > 表示仅在 div 的子级中搜索。这里456不满足条件,因为他是div的孙子(二少爷p的儿子)。

相当于$("parent").children("child");
$("A B")

[html] 查看纯文本










789







[javascript] 查看纯文本

$("表单输入").css('颜色', '#FF0000');
//也相当于:$("input","form").css('color','#ff0000');这将在下面解释
//也相当于:$("form").find("input").css('color', '#FF0000');

将表单中的所有输入设置为红色。祖先是形式,后代是输入。也可以理解为只要在表单的后代中有输入,就满足条件。考虑一下与 $("form > input").css('color','#ff0000') 的区别。


相当于:$("A").find("B")

$("div#test")

中间没有空格,表示“与”的关系。 $("div#test") 表示所有 id=test 的 div 元素。让我们看一个例子: $(".intro.demo") 所有带有 class="intro" 和 class="demo" 的元素。

示例1:

[html] 查看纯文本


123


456


789
abc



[javascript] 查看纯文本

$("span.test").css('颜色', '#FF0000');

结果如下:

123

456

789
abc

示例2:

[html] 查看纯文本


123


456


789
abc



[javascript] 查看纯文本

$(".intro.demo") .css('color', '#FF0000');

结果如下:

123

456

789
abc

示例3:

$("div#intro .head") id="intro" 的
元素中 class="head" 的所有元素

$("div,#test")

在双引号内使用逗号分隔不同的选择器称为并行选择器。

[html] 查看纯文本

123

456


[javascript] 查看纯文本

$('div,#test').css('颜色', '#FF0000');

结果如下图:

将 div 和 id="test" 元素设置为红色字体。
$(".test","div")

这似乎有点奇怪。虽然它与上面的并行选择器类似,但本质上是不同的。其实这里的第二个参数“div”就是限制.test的搜索范围。

我们先看一个简单的例子:

[html] 查看纯文本


123

456

[javascript] 查看纯文本

$(".test","div").css('颜色', '#FF0000');

结果是:

123

456

看一个稍微复杂一点的例子:

[html] 查看纯文本





















1 218.11.56.* 16:51 2012-10-30
删除
2 218.11.56.* 16:59 2012-10-30
删除




你会发现,当你点击不同数据的删除时,会弹出当前数据的ID值。

jQuery() 函数有三种用途。使用选择器只是实现此目的的一种方法。其语法为:

jQuery(选择器,[上下文])

这个用法还包括四种用法。

设置选择器环境

接受包含用于匹配元素集合的 CSS 选择器的字符串

一般使用jquery选择器作为第一个参数。事实上,jquery()函数的这种用法还可以传递第二个参数。传递该参数的目的是将前一个选择器限制在上下文环境中。默认情况下,即如果不传递第二个参数,选择器会从文档根部开始搜索 DOM($() 会在当前 HTML 文档中搜索 DOM 元素);如果指定了第二个参数,例如 DOM 元素 Set 或 jquery 对象,则会在此上下文中搜索。

看下面的例子

[javascript] 查看纯文本

$("www.chinavitech.com").click(function() {
$("span", this).addClass("bar");
});

由于我们已将跨度选择器限制于此环境,因此只有单击元素中的跨度才会获得附加类。在内部,选择器上下文是通过 .find() 方法实现的,因此 $("span", this) 相当于 $(this).find("span")。

以下是已删除项目的说明:

[html] 查看纯文本

下面有N条,这里只列出一条作为示范。


$arr[id]
$arr[日志]
$arr[ip]
$arr[时间]
删除



[javascript] 查看纯文本

//删除事件
$(".del").bind("点击",function(事件){
var _tmpQuery=$(this);//为什么要加上这句话呢?
var id=$("input[name='id']",$(this).parents("form:first")).attr("value");//需要注意的是这句话,获取当前点击“删除”的信息的ID
art.dialog.confirm('确定删除此日志吗?',function(){
$.post("myRun/managerlog_del.php",{id:id},function(tips){
if(提示=='ok'){
www.chinavitech.com('删除成功');
$(_tmpQuery.parents('tr:first')).hide();//如果不添加第一句则使用$(_tmpQuery.parents('tr:first')).hide( );不会被隐藏。因为这里的this不是当前的DOM对象class="del"。它是 jQuery 的 AJAX 配置对象 ajaxSettings。测试:alert(this.url);大头爸爸的注释:现在有一个更好的解决方案来处理这种隐藏。详情请访问:
}其他{
www.chinavitech.com(tips,5);
}
});
返回true;
});
});

现在终于明白了 var id=$("input[name='id']",$(this).parents("form:first")).attr("value") 的来龙去脉;.它的意思是从被单击元素最近的父元素开始查找第一个表单元素。该jquery对象将用作先前输入[name='id']的范围。事实上,在
Delete中,input[name='id']是唯一的,即name值等于id的input只有一个,只有一个。

更多信息请访问:http://www.chinavitech.com/jquery/core_jquery.asp

所以,看一下 jQuery(selector, [context]),这个用法的第二种用法:克隆 jQuery 对象

上面的例子中有这么一句:$(_tmpQuery.parents('tr:first')).hide();

在其他页面,有这样一句话:$($(this).parents('form:first')).serialize()。完整代码如下:

[javascript] 查看纯文本

//编辑事件
$(".edit").click(function(){
www.chinavitech.com('manager_edit_control.php?'+$($(this).parents('form:first')).serialize(),{id:'edit',title:'管理员修改' ,锁定:真,调整大小:假},假);
});

用法3:克隆jQuery对象
语法
jQuery(jQuery 对象)

当 jQuery 对象作为参数传递给 $() 函数时,将创建该对象的副本。新的 jQuery 对象引用与原始对象相同的 DOM 元素。

你完全可以将上面的代码改成:

_tmpQuery.parents('tr:first').hide();

$(this).parents('form:first').serialize()

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。