Misunderstanding - Replace Prototyping With Own Array Type Based On Object
Dec 17, 2009
I'm apparently misunderstanding what I'm reading on prototyping. My main task is to squeeze some performance out of an app that's a bit slow on IE, and it looks like large Arrays and their overhead may be part of the problem. I'm trying to replace those with my own array type based on Object and extend it with helper functions like .length. Here's a munged sample of what I've tried:
I have a few String prototypes such as String.prototype.EscapeReg = function () { return this.replace(/[-[]{}()*+?.,\^$|#s]/g, "\$&"); }; // Escapes characters for use with a regular expressionI also have my own class/ library which is used like this var adg = new AndyG_ns.ADG_Utils(); adg.StartClock('AndyClock','dd mmm yy hh:nn'); // etc.What I would like to do is to only add the prototype to my library (not to the global namespace). The end result I'm looking for is to use code such as:
var adg = new AndyG_ns.ADG_Utils(); var myString = new adg.AString(); var parsed = myString.EscapeReg();
In addition, I want to be able to also use/create my special string sub-class within my library. I suppose I'm saying that I would like to extend or super-class the native String object.
ok i have a script which will make a copy of the html in a div and place it into another div the problem with this it creates a duplicate element with the same id so what i want to know is can i create a new id based off old ids using a generic type script
function scope(e) { var popin = document.getElementById('popin');
I'd like to know if its possible to shift a select option field into a simple text field based on a check box filled by user.
I have an asp form that carries a few select options. One of them I'd like to permit free editing if the user selects a check box just biside the select option, so enableing free editing by user.
I have a image gallery that gives very nice popup windows when you click the thumbnail for the larger picture. The problem is that when you hover over the thumbnail(link) it doesn't change the cursor type to a hand which makes it hard to know that it's a link....
element = xGetElementById(obj.ID+i); position = element;
I need this several times in my script and I am sure it createst quite a lot of overhead. And I would like to pass xGetElementById(obj.ID+i) into an element array. like:
element = new Array(); element[i]=xGetElementById(obj.ID+i);
So I can call back element[i] etc in my script by saving some overhead BUT (there is always a 'but' in my posts ) then:
how would I go about removing one of the inner objects - s1 or s2? I've tried all sorts of ways but can't seem to get anything to remove an item from a jQuery object.
I have a sharepoint site which I am integrating into and I wrote a hundreds of custom functions on my HTML demoin oldschool plain javascript based on the Unique IDs of the elements, however sharepoint 2007/or ASP.NET seems toprepend unique IDS with a long string of crap, the string of crap ('which I shall now refer to as the crapstring') changes based on which page you are on ("eg txtNameValue becomes zctl00_ctl16_g_b132ca0b_b2ad_4e2b_a5e0_8babbb67ff22_ctl00_txtNameValue'"). I found a piece of code in oldschool javascript which works on a page by page basis however I need something I can include in the header that performs the same function across all pages. I was thinking of something in Jquery that works on id*=
What type of variable is an empty array element? I thought it was undefined, but i noticed that they have different behavior than undefined does:
var r=Array(1); var s=r.concat([0,"",null,undefined]); alert (s.toSource()) //==="[, 0, "", null, (void 0)]" typeof s[0] //==="undefined" typeof s[4] //==="undefined"
As you can see, 0 and 4 both === undefined. Yet, they don't have the same toSource()... Is this special type named anything specific? Or more importantly, can it be detected outside of an array as being distinct from undefined? I am thinking this would be the same type as ({}).nonProp ... I guess the question is actually, "can you tell the difference between uninitialized and undefined"?
how do i pass the values of listbox[] to javascript?
below is my javascript:
function Add() { Obj=(document.getElementById("scopeid[]")); alert(Obj.value); }
alert gives me only the last selected value and not the entire values. i.e if the user has selected 2 ,3 and 4th option, it gives me value of only 4th item instead of all three. how to do it?
I get the "myerrorobject.filename" in the alert-Box, but I get an "undefined"-error, if I try to access myerrorobject.filename (or other properties) in the function "my_function". Why?
In our ordering system, we have to type in various values for several items at a time. This means in one single form, for one order, we could be typing in a batch number 4 or 5 times. I can valiadate this easy enough with Javascript when there is only 1 line. But what if there is more than 1?
With PHP you add [] to the end of the form element's name. But how do I get javascript to work with this?
Code:
Basically, the batch number, expiry date and pallet/box number is mandetory. If they arn't entered, it needs to fail (return false). It doesn't seem to be doing anything, just moving on to the next part which is checking other parts of the form which isn't repeated.
i have a implementation where i need to perform a search and replace. i will try to explain to the best of my ability. i have a variable, var a = "THIS IS SOME SOME TEXT";
then i have another array variable, var b = new Array(); which contains elements in key=value format eg. SOME=NEWSOME so what i need to do is, i need to loop through this array and if SOME exists in var a, then i need to replace it with NEWSOME. so for each value before =, if it exists in var a replace it with whats after =. and replace only once, so if SOME exists multiple times just replace the first occurence.
so essentially my final string would be, THIS IS NEWSOME SOME TEXT.
I'm writing a program that involves a network of interconnected nodes (or simply objects in my example below). It depends on being able to access properties of an object's linked objects (a bit oddly worded, sorry)...Problem is I'm not sure how to properly access those properties... see below please.
<script> //This is an example of a problem im having in my own code... //I want to access the name of the object within the links array wintin the object...
When I use this function, one of the keys in the iteration will be the new function that I have created.
The following example would alert the following: "key1", "key2", "keyExists". The last one is my concern. Obviously their are other browser-defined functions available for Objects that don't show up when iterating through the object. I thought Object.prototype.functionname was the methodology for that but apparently not. Is there a way to achieve the effect I am looking for? Code:
I'm trying to figure out how I replaces/removes parts of text in string in realtime using jQuery. This is what I got now:
PHP Code: $str = 'This is a <b>test</b>. Its not going well!'; echo '<div class="element">'; echo '<span>'.$str.'</span>'; echo '</div>'; echo '<p>Remove</p>'; Code JavaScript: $('p').click(function() { $('.element span').each(function() { var test = array('<b>','</b>','well'); //var test = 'not'; console.log($(this).text()); var text = $(this).text().replace(test, ''); $(this).text(text); }); });
The problem: As above nothing happens. If I use the var test = 'not'; instead of the array part it works except it also removes the <b> tags? How do I get the array part to work and why is it removing htmltags when executed?
trying to write a function where i can pass an array and string and replace the value in return. i.e
var inputStr = "010203040506070809111213141516171819";
i want to pass this value in function and replace each number (number ranges are 01-09 and 11-19 only) i.e if i pass 01 want to replace that with A,02 with B etc.. so problem is i would pass input string and pass back as string after replacing those values by running through the below function. wrote the following,cant seem to split my inputStr into 01 02 etc tried splice and split no luck :
We all know (and love!) the fact that Mozilla exposes element constructors (HTMLParagraphElement, for example) for prototyping. Turns out Opera 8 allows you do to the same thing.
So this leaves Safari, which has actually allowed you to do this since 1.0, *but* doesn't publicly expose the constructors. The below code exports constructors into public variables matching those in Mozilla and Opera 8:
/* HTMLElement Prototyping in KHTML and WebCore Copyright (C) 2005 Jason Davis, www.jasonkarldavis.com Additional thanks to Brothercake, www.brothercake.com
This code is licensed under the LGPL: http://www.gnu.org/licenses/lgpl.html */
function HTMLElement() {} HTMLElement.prototype = HTMLHtmlElement.__proto__.__proto__; var HTMLDocument = document.constructor; var HTMLCollection = document.links.constructor; var HTMLOptionsCollection = document.createElement("select").options.constructor; var Text = document.createTextNode("").constructor; var Node = Text; }
In Opera < 8, all elements inherit directly from Object(), so you can still prototype Object() if you need to do element prototyping. Internet Explorer's elements *don't* inherit from Object, oddly enough, so who knows with that browser. In any case, there you go. It also happens to work in Konqueror (AFAIK).