$('#<%= txtFirstName.ClientID%>')。这段代码中的$和#做了什么?

时间:2009-12-23 11:04:18

标签: asp.net javascript jquery asp.net-3.5

$('#<%= txtFirstName.ClientID%>').show();

尝试使用服务器标签将ClientId发送到外部Javascript文件 作为参数

<input type="text" ID="txtFirstName" runat="server" maxlength="50"
                    class="DefaultTextbox" style="width:180px;"
                    value="First Name" 
                    onfocus="ControlOnFocus('First Name',$('#<%= txtFirstName.ClientID%>').show())"
                    onblur="ControlOnBlur('First Name')"/>

function ControlOnFocus(CompareString,ControlId)
{
    alert(ControlId);

}

4 个答案:

答案 0 :(得分:7)

$()是主jQuery函数的简短别名,也称为jQuery()。你传递一个CSS选择器,在CSS中,#表示“带有ID的HTML元素......”。显然,该ID在此程序的ClientID变量中。然后,show()调用会显示指定的HTML元素。

答案 1 :(得分:2)

您的脚本似乎使用jQuery。

$('#<%= txtFirstName.ClientID%>').show()将返回包含属性id=<%=txtFirstName.ClientID%>的元素的jQuery对象,而不是ClientID值。

我猜你的意思是:

<input type="text" ID="txtFirstName" runat="server" maxlength="50"
                    class="DefaultTextbox" style="width:180px;"
                    value="First Name" 
                    onfocus="ControlOnFocus('First Name','<%= txtFirstName.ClientID%>')" // <= pass only the ClientID to your function
                    onblur="ControlOnBlur('First Name')"/>

function ControlOnFocus(CompareString,ControlId)
{
    $('#'+ControlId).show(); // <= do the show action here, in your function
    alert(ControlId);

}

答案 2 :(得分:1)

Bud,$是jquery或prototype等javascript框架的别名,​​#代表DOM的ID。就像CSS一样,这些框架允许您使用CSS语法选择元素(。用于类,#用于ID等)。 所以$(“#test”)的工作方式几乎与getElementById('test')

相同

答案 3 :(得分:1)

jQuery语法总是以$开头,#表示函数show()将应用于提供了Id的元素。假设id是txtFirstName,那么写$('#txtFirstName')相当于经典Javascript中的document.getElementById('txtDirstName')。这将通过提供的id从文档对象模型(DOM)中选择元素。选择元素后,可以在该引用上执行不同的jQuery函数。 show函数使控件/元素可见。同样,您可以使用.hide()来隐藏元素。