Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery selector not working when element contains dot in tag name

I have just started using jquery for the first time so i'm not sure if what i'm doing is correct. What i'm trying to do is very basic, I have a script which is adding a css watermark to textboxes upon load in an MVC view.

To select the element i do the following:

jQuery(document).ready(function(){$('#Department.DeptName').addWatermark('input-watermarked', 'test');}); 

Then in my script for adding the css watermarkclass it fails at the "this.val().length" statement.

jQuery.fn.toggleWatermark = function(watermarkedClass, watermarkText) { if (this.hasClass(watermarkedClass)) {     this.removeWatermark(watermarkedClass); } else if (this.val().length == 0) {     this.addClass(watermarkedClass);     this.val(watermarkText); } 

}

The script works fine where an element id is "DepartmentDeptName", it's as if the selector doesn't work when the element id contains a dot inside it. Does anyone know why or how to get around this issue?

like image 545
Kevin Quinn Avatar asked Oct 12 '10 09:10

Kevin Quinn


2 Answers

I think you should escape the dot with a double-backslash: $("#Department\\.DeptName") See here.

like image 140
Joril Avatar answered Sep 24 '22 00:09

Joril


You are trying to access the #Department with a class DeptName. You should escape with two backslashes (as Joril said).

See JQuery Selectors for more info.

like image 43
Pedro Gil Avatar answered Sep 21 '22 00:09

Pedro Gil