在我的申请表中,我有这样的标记
<div id="divLeft" style = " width: 300px; border: 1px solid red; float: left" onclick="DoThis('textId')">
<input type="text" id="textId" />
</div>
<div id="divRight" style = " width: 600px; border: 1px solid red; float: right" onclcick="DoThat()">
</div>
并且在java脚本事件处理程序代码中我必须检索textId元素,我使用id选择器作为
function DoThis(id){
//some code goes here
$("#"+id).show();
//some code goes here
}
并且有数百个地方正在进行字符串连接,例如“#”+ somID,这对我来说很糟糕。我想知道是否有一些方法或jquery选择器API,如$.id(someID)
或某些东西,以避免这种字符串连接?
此致 哎呀
答案 0 :(得分:2)
创建一个包装器:
var $$ = function( id ) { return jQuery('#' + id); };
function DoThis(id){
$$( id );
}
答案 1 :(得分:2)
为了避免字符串连接,您可以使用比jQuery css id选择器更快的本机函数。
jQuery.extend({
byId: function(id) {
return jQuery(document.getElementById(id));
}
});
Usage and Possibility:
$.byId("foo").some_other_jQuery_method();
工作示例: http://jsfiddle.net/ZdeBt/
修改:
您也可以使用前一个答案,$$
很酷..
function $$(id) {
return jQuery(document.getElementById(id));
}
//and
$$("foobar").html("Hey!. Im able to access it");
通过这种方式,您仍然可以获得一个jQuery对象(数组),您可以使用与$(“#”+ id)相同的方式