假设以下html结构:
<div id="anId">
<span id="1"> aSpan </span>
<span id="2"> anotherSpan </span>
</div>
<span id="3"> anOutsideSpan </span>
Run Code Online (Sandbox Code Playgroud)
有没有办法为jQuery选择器定义"全局上下文"?就像是:
$(IDoNotKnowWhatToDoHere). SomethingAboutContext; // Defining the context as div#anID
$('span').doSomething; // Action only on span#1 and span#2 and not on span#3
$('span#1').doSomethingElse;
$('span').doSomethingStrange;
$('span#2').doSomethingCool;
$(SomethingAboutRemovingGlobalContext); //Removing the context
Run Code Online (Sandbox Code Playgroud)
这样我可以避免这样做:
$('div#anId span').doSomething; // Action only on span#1 and span#2 and not on span#3
$('div#anId span').doSomethingElse; // Same as last code comment
$('div#anId span#1').doSomethingStrange; // Same as last code comment
$('div#anId span#2').doSomethingCool; // Same as last code comment
Run Code Online (Sandbox Code Playgroud)
这里只有4个动作,但我正在处理的代码有100个.
我想避免总是重复div#anId.
请记住,这是一个例子,而不是实际的代码.
我的问题不是关于链接.
var $g = $.proxy($.fn.find, $("div"));
$g('span').doSomething; // Action only on span#1 and span#2 and not on span#3
$g('#1').doSomethingElse;
$g('span').doSomethingStrange;
$g('#2').doSomethingCool;
Run Code Online (Sandbox Code Playgroud)
所以你在这里做的是你创建一个新的选择器,它代表$("div").find并使用它来进行所有选择.
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |