为HTML元素添加一自定义的属性非常方便,只须将其加到尖括号中即可,与内置属性地位相等。

如我们要为TextBox元素添加属性idvalue:

<input type="text" id="txtInput" name="txtInput" value="自定义文本">

只须在原来的控件后面加上:idvalue=”…”,成为:

<input type="text" id="txtInput" name="txtInput" value="自定义文本" idvalue="自定义值">

idvalue即可正式成为txtInput的属性,地位与其他属性相等。

如以下例子,在IE6中调试通过:

<html>
<head>
    <title>自定义属性</title>
    <script language="javascript">
            function showText()
            {
                 alert(document.getElementByIdx("txtInput").value);
             }
            
            function showValue()
            {
                 alert(document.getElementByIdx("txtInput").idvalue);
             }

</script>
</head>
<body>
    <input type="text" id="txtInput" name="txtInput" value="自定义文本" idvalue="自定义值">
    <input type="button" id="btnShowText" name="btnShowText" value="显示文本内容" onclick="showText();">
    <input type="button" id="btnShowValue" name="btnShowValue" value="显示文本值" onclick="showValue();">
</body>
</html>

但idvalue在Firefox中却不能通过,主要是因为Firefox控制严格,所以这些自定义属性不能认识。经过调试,只能用document.getElementByIdx("txtInput").attributes["idvalue"].nodeValue取得,该方法在IE中也可使用。所以,同时适用IE和Firefox的代码为:

<html>
<head>
    <title>自定义属性</title>
    <script language="javascript">
            function showText()
            {
                 alert(document.getElementByIdx("txtInput").value);
             }
            
            function showValue()
            {
                 alert(document.getElementByIdx("txtInput").attributes["idvalue"].nodeValue);
             }

</script>
</head>
<body>
    <input type="text" id="txtInput" name="txtInput" value="自定义文本" idvalue="自定义值">
    <input type="button" id="btnShowText" name="btnShowText" value="显示文本内容" onclick="showText();">
    <input type="button" id="btnShowValue" name="btnShowValue" value="显示文本值" onclick="showValue();">
</body>
</html>

以下转自csdn

就是给标签写一个它并不存在属性;如
<div TextLength="20"></div>
在HTML中,div标签并没有TextLength属性,是我自已经加的;

假如,页面中有这样一段HTML代码:
<div>新闻列表
         <ul>
           <li> [图]不按规定线路运营阻挠执法人员执法 公交车擅改运营线路被查处 [2007-7-31] </li>
           <li> 五金厂已搬迁 眼镜厂仍扰民 [2007-7-31] </li>
           <li> [图]“2007香港购物节”正在举行——市民赴港疯狂“血拼” [2007-7-27] </li>
           <li>[图]花园后面的山脚边,存在大量的乱搭建,街道执法队展... [2007-7-27] </li>
         </ul>
</div>

我要截取这些字符,当然很容易;用getElementsByTabName取出li标签列表,用个for循环逐一处理一个就可以了;

但是,字符截多长呢,自然要设变量,这个变量设在哪呢,如果写在javascript中,这个变量离HTML代码太远了(一个在头部head,一个在body),开发人员不方便操作,因为在页面中,它能会有很多这样的新闻列表或其它列表;于是我想到了给li的父级标签ul,加自定义属性,当然,如果是ol也是可以的,只要是li的父级就行;如:

<div>新闻列表
         <ul TextLength="15">
           <li> [图]不按规定线路运营阻挠执法人员执法 公交车擅改运营线路被查处 [2007-7-31] </li>
           <li> 五金厂已搬迁 眼镜厂仍扰民 [2007-7-31] </li>
           <li> [图]“2007香港购物节”正在举行——市民赴港疯狂“血拼” [2007-7-27] </li>
           <li>[图]花园后面的山脚边,存在大量的乱搭建,街道执法队展... [2007-7-27] </li>
         </ul>
</div>

与前面相比,ul多了TextLength属性,就是我要截取的字符串长度值;然后,我写了一个函数,来读取这个属性,并将该区域的li中字符截短。函数如下:

<script language="javascript" type="text/javascript">
function lineShow()
{
    var list = document.getElementsByTagName_r("li");  
    for(var i = 0; i < list.length; i ++ )
    {
     // 获取自定义参数,为字符长度
var textlength = Number(list[i].parentNode.getAttribute("TextLength"));
      list[i].setAttribute("title", list[i].innerHTML);
      list[i].innerHTML = subString(list[i].innerHTML, textlength);
    }
}
function subString(str, len)
{
    len = len == null || isNaN(len) ? 0 : len;
    if(len < 1 || str.length <= len)return str;
    return str.substr(0, len) + "…";
}
</script>

上面代码中的语句,都是较常用的,不用过多解释了。

最后,在页面载入完毕时,调用该函数就行了。调用函数的代码如下:
<script language="javascript" type="text/javascript" defer="true">
lineShow();
</script>

这时效果就出现了,页面中所有列表字符被截短,当鼠标碰上时,显示其完整标题;

其实上面的javascript并没有什么特殊的,很简单,唯一不同的是,我利用自定义属性,让开发人员,在使用这个效果时,更方便了。

自定义HTML标签属性的更多相关文章

  1. js 自定义html标签属性

    <input type="text" id="txtBox" displayName="123456" /> 获取自定义属性值: ...

  2. JSP自定义简单标签入门之带有属性

    上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限"写死了",这是非常不好的行为,因为其灵活性太差.所以下面就介绍一种使用属性来控制标签内容输出次数的方法. 准 ...

  3. 如何自定义JSTL标签与SpringMVC 标签的属性中套JSTL标签报错的解决方法

    如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II ...

  4. jsp2自定义标签+属性

    前面说过jsp2自定义标签如果要加入属性需要设置属性的getter和setter方法.代码如下: public class GetParam extends SimpleTagSupport { pr ...

  5. 如何用angularjs制作一个完整的表格之四__自定义ng-model标签的属性使其支持input之外的html元素

    有的时候我们需要为非input类型的元素添加ng-model来实现双向的数据绑定,从而减少冗余代码,那么可以尝试一下的方式 例如:我页面中使用了contenteditable这个属性来实现用户可直接编 ...

  6. 自定义JSP标签库及Properties使用

    自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...

  7. android自定义控件(3)-自定义当前按钮属性

    那么还是针对我们之前写的自定义控件:开关按钮为例来说,在之前的基础上,我们来看看有哪些属性是可以自定义的:按钮的背景图片,按钮的滑块图片,和按钮的状态(是开还是关),实际上都应该是可以在xml文件中直 ...

  8. 基于Spring的可扩展Schema进行开发自定义配置标签支持

    一.背景 最近和朋友一起想开发一个类似alibaba dubbo的功能的工具,其中就用到了基于Spring的可扩展Schema进行开发自定义配置标签支持,通过上网查资料自己写了一个demo.今天在这里 ...

  9. 自定义JSTL标签和函数库

    一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...

随机推荐

  1. rowcount和@@rowcount的区别

    1 rowcount rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10select * from 表A 这样的查询只会返回 ...

  2. Linux常用视频播放器

    1.SMplayer是一款跨平台的视频播放工具,可以支持大部分的视频和音频文件.它支持音频轨道切换.允许调节亮度.对比度.色调.饱和度.伽玛值,按照倍速.4倍速等多种速度回放.还可以进行音频和字幕延迟 ...

  3. 打印机共享为什么老是出现“操作无法完成(错误 0X00000709)。再次检查打印机名称、并确保打印机连接网络

    这个情况应该是访问IP连接打印机才会出现的.解决办法:不使用IP访问,使用网上邻居找计算机名称再连接打印机即可. ------------------------------------------- ...

  4. 【Python】【Head First Python】【chapter1】1 - 导入模块

    导入模块 导入模块有三种方法,以导入sys模块为例: 第一是import module 形式导入 import sys location = sys.stdout 第二是from module imp ...

  5. 【VC++学习笔记一】MFC操作Excel

    最近在做一个读取Excel的功能,之前也做过相关的,但总是零零闪闪的,趁着正在劲头上,归纳一下: 利用Automation添加相关的类,在Excel2010中可以在安装文件夹下直接点击Excel.ex ...

  6. Swift学习笔记(13)--属性 (Properties)

    普通属性用var和let即可,本文不做详述 1.延迟存储属性 延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性.在属性声明前使用@lazy来标示一个延迟存储属性. class DataImp ...

  7. wampserver-mysql创建数据库

    首先打开wampserver,在右下角会出现一个这样的图标,左键单击它,选择MYSQL->MYSQL控制台 输入密码 创建一个新的数据库:create database XXX 注意要输“;”, ...

  8. javascript——对象

    分类 JavaScript对象分类: 内置对象:由ECMAScript规范定义的对象或类,例如:数组.函数.日期(Date()).正则表达式 宿主对象:是由js解释器所嵌入的宿主环境(比如Web浏览器 ...

  9. Python3爬虫之爬取某一路径的所有html文件

    要离线下载易百教程网站中的所有关于Python的教程,需要将Python教程的首页作为种子url:http://www.yiibai.com/python/,然后按照广度优先(广度优先,使用队列:深度 ...

  10. 解决切换场景时NGUI图集资源未释放的问题

    使用unity3d编辑器,在切换场景的时候.NGUI的图集没有释放造成内存不足游戏闪退的问题. 默认情况下,unity3d切换场景之后会释放不用的内存,即内部会调用Resources.UnloadUn ...