Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

« Newer Snippets
Older Snippets »
Showing 1-10 of 12 total  RSS 

HTML/JavaScript - Select list - Add/Remove Options (DOM)

from http://www.mredkj.com/tutorials/tutorial005.html


Overview

* Insert Before Selected - A new option is created and added above the selected option (as determined by selectedIndex). If none are selected, then no option is added.
* Remove Selected - Deletes the selected option (or options) from the list. If no options are selected, no options are deleted.
* Append Last - No matter what is selected, a new option is added at the end.
* Remove Last - No matter what is selected, the last option is deleted from the list.


Explanation

According to DOM Level 1, the following is the syntax for the add and remove methods in HTMLSelectElement:

void add(in HTMLElement element, in HTMLElement before) raises(DOMException);
void remove(in long index);

The add method takes two arguments: the element to add, and the element to insert before. The spec also says you can add to the end of the list by passing null as the second argument.

The remove method just takes a number: the index of the option to be removed.


The JavaScript
<script language="JavaScript" type="text/javascript">
<!--
var count1 = 0;
var count2 = 0;

function insertOptionBefore(num)
{
  var elSel = document.getElementById('selectX');
  if (elSel.selectedIndex >= 0) {
    var elOptNew = document.createElement('option');
    elOptNew.text = 'Insert' + num;
    elOptNew.value = 'insert' + num;
    var elOptOld = elSel.options[elSel.selectedIndex];  
    try {
      elSel.add(elOptNew, elOptOld); // standards compliant; doesn't work in IE
    }
    catch(ex) {
      elSel.add(elOptNew, elSel.selectedIndex); // IE only
    }
  }
}

function removeOptionSelected()
{
  var elSel = document.getElementById('selectX');
  var i;
  for (i = elSel.length - 1; i>=0; i--) {
    if (elSel.options[i].selected) {
      elSel.remove(i);
    }
  }
}

function appendOptionLast(num)
{
  var elOptNew = document.createElement('option');
  elOptNew.text = 'Append' + num;
  elOptNew.value = 'append' + num;
  var elSel = document.getElementById('selectX');

  try {
    elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
    elSel.add(elOptNew); // IE only
  }
}

function removeOptionLast()
{
  var elSel = document.getElementById('selectX');
  if (elSel.length > 0)
  {
    elSel.remove(elSel.length - 1);
  }
}
//-->
</script>



The HTML
<form>
<input type="button" value="o" onclick="insertOptionBefore(count1++);" />
Insert Before Selected<br />
<input type="button" value="o" onclick="removeOptionSelected();" />
Remove Selected<br />
<select id="selectX" size="10" multiple="multiple">
<option value="original1" selected="selected">Orig1</option>
<option value="original2">Orig2</option>
</select>
<br />
<input type="button" value="o" onclick="appendOptionLast(count2++);" />
Append Last<br />
<input type="button" value="o" onclick="removeOptionLast();" />
Remove Last
</form>

Remove comments from a file

Remove all comment lines from a file.

sed -e '/^#/d' $1 | more

or to output it to a new file
sed -e '/^#/d' $1 > $1.nocomments

remove dublicate lines form

111111
1111
11
222
222
33333
4444
1111
22

<textarea name="lines" cols="70" rows="30">
<?php 
$a=array_unique(explode("\n", $_POST['lines']));
#natsort($a);
echo implode("\n",$a);
?>
</textarea>


result:
111111
1111
11
222
33333
4444
22

BlockFlash-Revisited.user.js

// ==UserScript==
// @name		BlockFlash-Revisited
// @namespace		http://snippets.dzone.com/posts/show/3054
// @description	Do not start Flash animation until you click on them.
// @include		*
// @exclude		http://www.macromedia.com/*
// @exclude		http://www.atomfilms.com/*
// @exclude		http://uploads.ungrounded.net/*
// @exclude		http://www.albinoblacksheep.com/*
// ==/UserScript==

/*
	Revised by Andrew Pennebaker (andrew.pennebaker@gmail.com)

	Author: Jos van den Oever (jos@vandenoever.info)

	License: GPL

	Version history:
		2006-02-12: initial version
		2006-11-28: changed appearance

Inspiration for this script comes from the removeFlash script and the FlashBlock firefox extension.
*/

(function () {
	var objects=document.getElementsByTagName("object");

	for (i=0; i<objects.length; i++) {
		var flash=objects[i];

		if (flash.innerHTML.match(/.swf|shockwave|flash/)) {
			var placeholder=document.createElement("div");

			placeholder.style.cursor='pointer';
			placeholder.style.background='orange'; // 'gray '
			placeholder.style.textAlign='center';
			placeholder.style.color='black';
			placeholder.innerHTML="[Play Flash]";

			flash.parentNode.insertBefore(placeholder, flash);
			flash.on=false;

			placeholder.addEventListener(
				'click',
				function() {
					if (flash.on) {
						flash.style.display='none';
						placeholder.innerHTML="[Play Flash]";
						flash.on=false;
					}
					else {
						flash.style.display='';
						placeholder.innerHTML="[Stop Flash]";
						flash.on=true;
					}
				},
				true
			);

			flash.style.display='none';
		}
	}
})();

Delete empty directories (UNIX)

// Shell command to delete empty directories. May have to run several times to get everything.

find . -type d -empty | xargs rmdir -

drop-highest - remove the highest value from a series

drop-highest: func [block] [head remove maximum-of block]

drop-lowest - remove the lowest value from a series

drop-lowest:  func [block] [head remove minimum-of block]

Javascript Manipulate Class Names

I often have to manipulate class names of objects in javascript.
But className can have multiple classes in it.
These functions deal with that.

// ----------------------------------------------------------------------------
// HasClassName
//
// Description : returns boolean indicating whether the object has the class name
//    built with the understanding that there may be multiple classes
//
// Arguments:
//    objElement              - element to manipulate
//    strClass                - class name to add
//
function HasClassName(objElement, strClass)
   {

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      // find all instances and remove them
      for ( var i = 0; i < arrList.length; i++ )
         {

         // if class found
         if ( arrList[i].toUpperCase() == strClassUpper )
            {

            // we found it
            return true;

            }

         }

      }

   // if we got here then the class name is not there
   return false;

   }
// 
// HasClassName
// ----------------------------------------------------------------------------


// ----------------------------------------------------------------------------
// AddClassName
//
// Description : adds a class to the class attribute of a DOM element
//    built with the understanding that there may be multiple classes
//
// Arguments:
//    objElement              - element to manipulate
//    strClass                - class name to add
//
function AddClassName(objElement, strClass, blnMayAlreadyExist)
   {

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // if the new class name may already exist in list
      if ( blnMayAlreadyExist )
         {

         // get uppercase class for comparison purposes
         var strClassUpper = strClass.toUpperCase();

         // find all instances and remove them
         for ( var i = 0; i < arrList.length; i++ )
            {

            // if class found
            if ( arrList[i].toUpperCase() == strClassUpper )
               {

               // remove array item
               arrList.splice(i, 1);

               // decrement loop counter as we have adjusted the array's contents
               i--;

               }

            }

         }

      // add the new class to end of list
      arrList[arrList.length] = strClass;

      // add the new class to beginning of list
      //arrList.splice(0, 0, strClass);
      
      // assign modified class name attribute
      objElement.className = arrList.join(' ');

      }
   // if there was no class
   else
      {

      // assign modified class name attribute      
      objElement.className = strClass;
   
      }

   }
// 
// AddClassName
// ----------------------------------------------------------------------------


// ----------------------------------------------------------------------------
// RemoveClassName
//
// Description : removes a class from the class attribute of a DOM element
//    built with the understanding that there may be multiple classes
//
// Arguments:
//    objElement              - element to manipulate
//    strClass                - class name to remove
//
function RemoveClassName(objElement, strClass)
   {

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      // find all instances and remove them
      for ( var i = 0; i < arrList.length; i++ )
         {

         // if class found
         if ( arrList[i].toUpperCase() == strClassUpper )
            {

            // remove array item
            arrList.splice(i, 1);

            // decrement loop counter as we have adjusted the array's contents
            i--;

            }

         }

      // assign modified class name attribute
      objElement.className = arrList.join(' ');

      }
   // if there was no class
   // there is nothing to remove

   }
// 
// RemoveClassName
// ----------------------------------------------------------------------------
  

removeDir //PHP Function

Removes a folder, including its subfolders and files in a efficient way without recursion, returns Boolean.

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com

function removeFolder($dir){
	if(!is_dir($dir))
		return false;
	for($s = DIRECTORY_SEPARATOR, $stack = array($dir), $emptyDirs = array($dir); $dir = array_pop($stack);){
		if(!($handle = @dir($dir)))
			continue;
		while(false !== $item = $handle->read())
			$item != '.' && $item != '..' && (is_dir($path = $handle->path . $s . $item) ?
			array_push($stack, $path) && array_push($emptyDirs, $path) : unlink($path));
		$handle->close();
	}
	for($i = count($emptyDirs); $i--; rmdir($emptyDirs[$i]));
}

remove-all - remove all values matching the value arg from the series

remove-all: func [series value] [remove-each val series [val = value]]
« Newer Snippets
Older Snippets »
Showing 1-10 of 12 total  RSS