当前位置:文档之家› VSflexgrid使用说明

VSflexgrid使用说明

VSflexgrid使用说明
VSflexgrid使用说明

1,如果想把某一列设置成下拉匡中选择,只能写成 grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。

答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)

2,怎样限定第三列可编辑,其他列不可编辑?

答案:

Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel A s Boolean)

'*******先将设editable=2

'限定不可编辑列,如有5列

If Col = 0 Then Cancel = True

If Col = 1 Then Cancel = True

If Col = 2 Then Cancel = True

If Col = 4 Then Cancel = True

If Col = 5 Then Cancel = True

End Sub

3、怎么获得当前单元个的位置,比如某单元个获得焦点,弹出msgbox("你选的是第4行第5列")

Answer:

Private Sub VSFlexGrid1_Click()

Dim a, b As Long

a = VSFlexGrid1.Row

b = VSFlexGrid1.Col

MsgBox "你选的是" & a & "行" & b & "列"

End Sub

4,对vsflexgrid进行编辑的时候,让vsflexgrid的某列只能输入数字? Answer:

Private Sub CheckData(KeyAscii As Integer)

If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub '如果是数字退出

If KeyAscii <> 8 Then KeyAscii = 0

End Sub

Private Sub vsflexgrid_KeyPressEdit(ByVal Row As Long, ByVal Col A

s Long, KeyAscii As Integer)

If col=1 Then '第一列只能输入数字

CheckData KeyAscii

End If

End Sub

5,限制某列只能输入数字

Answer:

Private Sub fg_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAs cii As Integer)

Dim Numbers As String '允许输入的字符

If fg.Col = 6 Then '第6列

Numbers = "1234567890" + Chr(46) + Chr(8)

If InStr(Numbers, Chr(KeyAscii)) = 0 Then

KeyAscii = 0

End If

End If

End Sub

6,如何指定一列的输入格式

VSFlexGrid 控件属性方法一览表VSFlexGrid 控件属性方法一览表(带()为方法) 属性/方法名称功能示例语法

AddItem() 增加一行 O.A String[, RowIndex] Aggregate 返回集合合计(总数,平均,等等) O.A = (A,Row1,Col1,Row2, Col2)

Align 对象在窗体上的显示位置 O.A = 0|1|2|3|4 AllowBigSelection 设定列头是否整行或整列选择 O.A = True|False AllowSelection 是否可多单元选择 O.A = True|False AllowUserFreezing 运行时用鼠标冻结行或列 O.A = 0|1|2|3 AllowUserResizing 调整(行/列)大小方式 O.A = 0|1|2|3|4 Appearance 边框平面/凹陷/凸起 O.A = 0|1|2

Archive() 存储或清除一个二进制文件内容 O.A ArcFileName,FileName,0 |1|2|3

ArchiveInfo 返回一个二进制文件信息 O.A ArcFileName,0|1|2|3|4,L ineIndex

AutoReSize 是否自动调整大小 O.A = True|False AutoSearch 设置自动搜索 O.A = 0|1|2 AutoSearchDelay 设置AutoSearch多少秒刷新 O.A = 2

AutoSize() 自动调整列到指定宽度 O.A Col1,Col2,True|False,100 0

AutoSizeMode 自动调整适合行列内容 O.A = 0|1 AutoSizeMouse 是否双击列首自动调整适合行列 O.A = True|False BackColor 所有非固定行列的背景色 O.A = Color BackColorAlternate 所有非固定行列的交替行颜色 O.A = Color BackColorBkg 表格背景坐底色 O.A = Color

BackColorFixed 固定的行/列背景色 O.A = Color BackColorFrozen 冻结部分的行列背景色 O.A = Color BackColorSel 单元被选中的背景色 O.A = Color

BindToArray() 绑定数组 O.A ArrayStr,RowDim,ColDim,PageDim,Cu rrentPage

Bookmark 返回ADO Recordset行书签(只读) O.A(Row)

BorderStyle 边框粗细样式 O.A = 0|1

BottomRow 返回可见范围的最大行号(只读) O.A

BuildComboList() 将数据库中的内容写入下拉框 O.A(rs, FieldList, KeyFiel d, BackColor)

CausesValidation ???目标事件确认 O.A = False|True

Cell 选择部分的相应准则值 O.A(准则, Row1, Col1, Row2, Col 2) = 准则值

CellAlignment 设定单元里数据的排列方式 O.A = 0 至 9 CellBackColor 指定单元范围的背景颜色 O.A = Color

CellBorder() 选择单元范围的边界颜色 O.A Color,左,上,右,下,垂直,水

CellButtonPicture 选择单元范围的按钮图片 O.A = LoadPicture("D:\Icon. ico")

CellChecked 选择单元范围的复选框 O.A = 0|1|2 CellFloodColor 选择单元范围的流程颜色 O.A = Color CellFloodPercent 选择单元范围的流程百分比 O.A = 1 至 100 CellFontBold 指定单元范围设为黑体字 O.A = False|True CellFontItalic 指定单元范围设为斜体字 O.A = False|True CellFontName 对象所使用的字体名称 O.A = FontName CellFontSize 对象文字像数大小(默认9pt) O.A = 9 CellFontStrikethru 选择范围是否有删除线 O.A = False|True CellFontUnderline 选择范围是否有下画线 O.A = False|True CellFontWidth 设定单元或指定范围字体的宽度 O.A = 2

CellForeColor 设定单元或指定范围字体的颜色 O.A = Color

CellHeight 返回/显示到当前单元高度(只读) O.A

CellLeft 返回当前单元的左端位置(只读) O.A

CellPicture 显示在单元或指定范围中的图片 O.A = LoadPicture("D:\Icon. ico")

CellPictureAlingment 单元或指定范围图片的显示位置 O.A = 0 至 10 CellTextStyle 设定单元文本的显示形式 O.A = 0|1|2|3|4

CellTop 返回当前单元的顶端位置(只读) O.A

CellWidth 返回当前单元的宽度(只读) O.A

Clear() 清除表格内容 O.A([0|1|2],[0|1|2|3]) ClientHeight 返回客户可见范围高度 O.A

ClientWidth 返回客户可见范围宽度 O.A

Clip 设置选择范围的内容 O.A = Text

ClipSeparators ???

Col 设置激活单元的列号 O.A = 2

ColAlignment 列对齐排列方式 O.A(Col) = 0 至 9 ColComboList 向下拉框写入管道字符 O.A(Col) = "|ListStr1|ListStr 2|..."

ColData 设置用户定义的长整形数据 O.A(Col) = UserLong ColDataType 列数据类型 O.A(Col)=0至14到20(&H14),3 0(&H1E),31(&H1F)

ColEditMask 列编辑套用格式字符串 O.A(Col) = 指定的格式如:### ###

ColFormat 格式化显示列 O.A(Col) = "Currency"|"#.## #%"...

ColHidden 是否隐藏指定列 O.A(Col) = True|False ColImageList 设置图像列表句柄到列

ColIndent 缩进指定列 O.A Col= 100

ColIndex 返回列索引(只读) O.A Col

ColIsVisible 返回列是否可见(只读) O.A Col

ColKey 设置列钥匙 O.A(Col) = KeyStr

ColPos 返回列距左边宽度(只读) O.A Col

ColPosition 移动列的位置 O.A(Col) = ReCol

Cols 返回/设置总列数 O.A = 2

ColSel 返回/设置最后选择的列 O.A = 3

ColSort 设置列种类 O.A(Col) = 0 至 10

ColWidth 返回/设置指定列宽 O.A(Col) = 100 ColWidthMax 最大列宽 O.A(Col) = 5000 ColWidthMin 最小列宽 O.A(Col) = 100

ComboCount 取得Combo下拉按钮总数(只读) O.A

ComboData Combo下拉按钮数据(只读) O.A

ComboIndex Combo下拉按钮索引 O.A = 1

ComboItem Combo下拉按钮项目(只读) O.A

ComboList 向下拉框写入管道字符内容 O.A = "a|b|c" ComboSearch Combo下拉按钮搜寻方式 O.A = 0|1|2|3 Container 返回/设置对象的容器 O.A.Caption = "Forms" DataBindings 返回数据装入数(只读) O.A

DataMember 返回/设置数据描述成员 O.A = DataStr

DataMode 设置数据链接状态 O.A = 0|1|2|3|4 DataRefresh() 刷新数据源 O.A

DataSource 设置数据源 Set O.A = DataDim

Drag() 拖放 O.A [0|1|2]

DragIcon 拖放图标 O.A = LoadPicture("D:\Icon.ico") DragMode 拖放方式 O.A = 0|1

DragRow() 拖放行(本示例在MouseDown过程) O.A O.RowSel Editable 设置表格是否可编辑修改 O.A = 0|1|2

EditCell() 当移动到当前单元时自动选择 O.A

EditMask 当编辑时只能使用指定值 O.A = StrValue EditMaxLength 所有单元限制字节大小 O.A = 2

EditSelLength 编辑时选择长度 O.A = 5

EditSelStart 移动到单元时的光标位置 O.A = 0(或者Len(vsg.text)) EditSelText 编辑选择处放文本 O.A = "Str"

EditText 编辑文本 O.A = "Str"

EditWindow 返回编辑窗口(只读) O.A

Ellipsis 超宽字符加省略号 O.A = 0|1|2

Enabled 对象是否激活可用 O.A = False|True ExplorerBar 单击列头的选择、拖动或排序样式 O.A = 0 至 15 ExtendLastCol 是否扩充最后的列到适合宽度 O.A = False|True FillStyle 是否改变当前范围的内容或格式 O.A = 0|1

FindRow 查找符和条件返回的行(只读) O.A FindStr,[Row],[Col],[敏感],[精度])

FinishEditing() 完成编辑的 O.A = False|True FixedAlignment 固定列的对齐方式 O.A(Col) = 0 至 9 FixedCols 固定几列 O.A = 1

FixedRows 固定几行 O.A = 1

FlexDataSource 流动数据源 O.A = rsDate

FloodColor 设置流程颜色 O.A = Color

FocusRect 单元的选择虚框样式类型 O.A = 0|1|2|3|4|5

Font 设定字体 O.A = FontName

FontBold 设定字体粗体 O.A = False|True

FontItalic 设定字体斜体 O.A = False|True

FontName 设定字体名称 O.A = FontName

FontSize 设定字体大小 O.A = 10

FontStrikethru 设定字体删除线 O.A = False|True FontUnderline 设定字体下划线 O.A = False|True

FontWidth 设定字体的宽度(非间距) O.A = 2

ForeColor 设定字体前景颜色 O.A = Color

ForeColorFixed 设定固定单元的文本颜色 O.A = Color ForeColorFrozen 设定字体冻结部分的前景颜色 O.A = Color ForeColorSel 设定选择单元的文本颜色 O.A = Color

FormatString 设计管道符格式化行/列字符串 O.A = Format(1,"#0.00") FrozenCols 需要冻结的列数 O.A = 2

FrozenRows 需要冻结的行数 O.A = 2

GetMergedRange() ???获得合并山脉

GetNode() ???获得节点

GetNodeRow() ???获得节点行

GetSelection() ???获得选择 O.A Row1, Col1, Row2, Col2 GridColor 单元行列的网格线颜色 O.A = Color

GridColorFixed 设定固定网格线的颜色 O.A = Color

GridLines 可编辑区的网格线类型 O.A = 0 至 14 GridLinesFixed 固定行列网格效果类型 O.A = 0 至 14 GridLineWidth 编辑区的网格线线粗细 O.A = 1

Height 设置对象高度 O.A = 1000

HelpContextID 对象缺省上下文帮助ID O.A = HelpID

HighLight 是否突出加亮显示选中单元 O.A = 0[无]|1[默认]|2[仅焦点时有]

hWnd 获取对象句柄 O.A

Index 对象索引号(运行时只读) O.A

IsCollapsed ???

IsSelected 是否已选择 O.A

IsSubtotal 是否已小记 O.A

Left 对象距左边位置 O.A = 100

LeftCol 指定显示在最左边的列 O.A = 1

LoadArray() 载入数组

LoadGrid() 载入网格 O.A FileName, 0 至 6[,True(含固定行列)|False]

LoadGridURL() 载入网格URL

MergeCells 相同内容的单元格合并类型 O.A = 0|1|2|3|4|5|6 MergeCol 是否上下列合并 O.A(Col) = True MergeCompare 返回/设置合并比较类型 O.A = 0|1|2

MergeRow 是否左右行合并 O.A(Row) = True

MouseCol 返回鼠标指向的当前列号 O.A

MouseIcon 设定鼠标指向的当前图形 O.A = LoadPicture("C:\.ico")

MousePointer 设置对象的鼠标指针样式 O.A = 0 到 15|99 MouseRow 返回鼠标指向的当前行号 O.A

Move() 移动对象 O.A Left,[Top],[Width],[Height] MultiTotals ???Multi总数

Name 对象名称(运行时只读) O.A

NodeClosedPicture 节点封闭的图标 O.A = LoadPicture("C:\.ico") NodeOpenPicture 节点打开的图标 O.A = LoadPicture("C:\.ico") Object 返回/设置该对象变量 Set DimObjName = O.A OLEDrag() OLE拖拽数据 O.A

OLEDragMode OLE拖拽方式 O.A = 0|1

OLEDropMode OLE拖拽落下方式 O.A = 0|1|2

Outline() ???外面的线

OutlineBar 返回/设置显示目录树的线条 O.A = 0 至 6

OutlineCol ???外面的线列

OwnerDraw 返回或设置执行 DrawCell 事件 O.A = 0 至 6

Parent 返回该对象所在的对象(只读) O.A.Caption = "Forms" Picture 返回控件的图片(只读) O.A.属性|方法 = 相应值PicturesOver 返回控件图片结束 O.A = False|True PictureType 用Picture属性生成的图片类型 O.A = 0|1

PrintGrid() 打印网格数据 O.A ["主题",True|False,1|2,左右空,上下空]

Redraw 设定是否刷新控件 O.A = 0|1|2

Refresh() 刷新表格 O.A

RemoveItem() 删除指定行 O.A VSG1.RowSel

RightCol 返回右边最大的可见列范围 O.A

RightToLeft 是否将固定行放到右边 O.A = True

Row 设置激活单元的行号 O.A = 2

RowData 设置用户定义的长整形数据 O.A(Row) = UserLong RowHeight 返回/设置指定行高 O.A(Row) = 100 RowHeightMax 行高的最大值 O.A(Row) = 500 RowHeightMin 行高的最小值 O.A(Row) = 230

RowHidden 是否隐藏指定行 O.A(2) = True|False RowIsVisible 返回行是否在可见范围中(只读) O.A(Row) RowOutlineLevel 返回/设置水平行小记 O.A(Row) = 0|1

RowPos 返回行距上边高度(只读) O.A Row

RowPosition 移动行的位置 O.A(Row) = NewRow

Rows 返回/设置总行数 O.A = 2

RowSel 返回/设置最后选择的行 O.A = 2

RowStatus 设置行状态 O.A = 0|1|2|3

SaveGrid() 保存网格内容到二进制文件 O.A FileName, 0 至 6[,True (含固定行列)|False]

ScrollBars 设定卷动轴的方式 O.A = 0|1|2|3

ScrollTips 卷轴提示 O.A = False|True ScrollTipText 卷轴提示文本 O.A = "Text"

ScrollTrack 行是否随拖动条卷动显示 O.A = False|True

Select() 选择行列范围 O.A Row,Col[,RowSel][,ColSel] SelectedRow 已选择行(只读) O.A(Row)

SelectedRows 返回所选总行数(只读) O.A

SelectionMode 设置单元焦点选中方式 O.A = 0|1|2|3

SetFocus() 设置到对象焦点 O.A

SheetBorder 表格边框颜色 O.A = Color

ShowCell() 立刻显示到指定单元 O.A Row, Col ShowComboButton 是否显示当选择时拉下按钮 O.A = 0|1|2 ShowWhatsThis() 显示“这是什么” O.A

Sort 按照选择的基准重新排序顺序方式 O.A = 0 到 10

Subtotal() 小计 O.A 属性名[,其它共9个可省略参数] SubtotalPosition 是否小计上面或下面的数值 O.A = 0|1 TabBehavior Tab键跳转顺序禁止 O.A = 0|1

TabIndex 对象的Tab选择顺序 O.A = 2

TabStop 是否允许Tab自动选择 O.A = True|False

Tag 存储数据时所需的附加数据 O.A = Str

Text 返回/写入当前单元的文字 O.A = Str

TextMatrix 返回/写入指定单元的文字 O.A(Row, Col) = Str TextStyle 单元格文字效果 O.A = 0|1|2|3|4 TextStyleFixed 固定行列文本的3D效果 O.A = 0|1|2|3|4 ToolTipText 鼠标指向表格的说明消息 O.A = "TextString"

Top 对象上边距 O.A = 100

TopRow 指定显示在最上面的行 O.A = 5

TreeColor 目录树颜色 O.A = Color

Value 返回当前单元数值部分(只读) O.A

ValueMatrix 返回指定单元数值部分(只读) O.A Row, Col

Version 返回控件的版本号(只读) O.A

VirtualData 虚拟数据 O.A = True|False

Visible 是否显示对象 O.A = True|False

WallPaper 表格壁纸背景图 O.A=LoadPicture(Image) | O.A.属性|方法 = 相应值

WallPaperAlignment 壁纸背景图墙报对齐方式 O.A(Col) = 0 至 10 WhatsThisHelpID 设置与对象相关联的上下文号 O.A = HelpIDString Width 设置对象宽度 O.A = 5000

WordWrap 设定单元中的文本是否换行 O.A = True|False ZOrder() 设置对象Z顺序 O.A 0|1

vsflexgrid技巧大全如何实现将vsflexgrid中修改的数据反馈到数据库中??Private Sub vsflexgrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long) rs.MoveFirst '//rs为记录集

rs.Move vsflexgrid1.Row - 1

rs.Edit

If vsflexgrid1.text = "" Then

rs.Fields(vsflexgrid1.Col - 1) = Null

Else

rs.Fields(vsflexgrid1.Col - 1) = vsflexgrid1.text

End If

rs.Update

end sub

一、增加记录使用for来循环表格行。

for i=1 to grid1.rows-1

with rs

.addnew

.fileds(o)=grid1.textmariy(i,0)

.fileds(1)=grid1.textmariy(i,1)

.fileds(2)=grid1.textmariy(i,2)

.fileds(3)=grid1.textmariy(i,3)

.update

end with

next

二、添加行

grid1.additem row

三、删除当前行

with grid1

i=.row

.removeitem i

end with

四、要显示下拉框,可以使用vsflexgrid中列绑定功能

grid1.colcombolist(1)=grid.buildcombolist(rs,"商品名称")

跟楼上的相比,仅仅是datamode不一样(2-flexDMBoundBatch)

但这样做的优势是非常明显的:可以撤销包括新增删除在内的所有操作,按保存键才写入数据库

Private Sub CmdDel_Click()

If fg.Row <> 0 Then fg.RemoveItem (fg.Row)

fg.Refresh

End Sub

Private Sub CmdAdd_Click()

On Error Resume Next

Adodc1.Recordset.AddNew

If Err.Number <> 0 Then MsgBox Err.Description

End Sub

Private Sub CmdUpdate()

Adodc1.Recordset.UpdateBatch adAffectAllChapters

End Sub

Private Sub CmdCancel_Click()

Adodc1.Recordset.CancelBatch

fg.DataRefresh

End Sub

Private Sub Form_Load()

Adodc1.ConnectionString = "FILE NAME=" & App.Path & "\conn.dsn" Adodc1.LockType = adLockBatchOptimistic

Adodc1.RecordSource = "Your_Tablename"

Set fg.DataSource = Adodc1

End Sub

1、打印vsflexgrid可以使用vsprinter打印控件。跟vsflexgrid配套使用效果不错。

2、导出EXECL,可以使用grid.savegrid的方法。

用savegrid的方法,在导出execl时,如果碰到类似于银行帐号的列如:“6465456665”,导到EXECL中就不这样显示了,这个问题还不知道怎么解决??另外也可以写代码(这个方法比较实用,但慢一些):

Dim excelApp As Excel.Application

Set excelApp = New Excel.Application

On Error Resume Next

If excelApp Is Nothing Then

Set excelApp = CreateObject("Excel.application")

If excelApp Is Nothing Then

Exit Sub

End If

End If

excelApp.Visible = True

Me.MousePointer = vbHourglass

excelApp.Workbooks.Add

With excelApp.ActiveSheet

Dim i As Integer, j As Integer

For i = 1 To Grid1.rows

For j = 1 To Grid1.Cols

.Cells(i, j).value ="'"& Grid1.TextMatrix((i - 1), (j - 1))'加上“'”号则可以解决上面savegrid中银行帐号的导出问题。

Next j

DoEvents

Next i

End With

Me.MousePointer = vbDefault

Set excelApp = Nothing

End Sub

EXCEL同Vsflexgrid通过

最近很多的朋友,都想知道EXCEL怎样同VSflexgrid交换数据。

实际上,利用“复制”、“粘贴”菜单即可实现。具体如下:

(1)在Vsflexgrid上弹出右键菜单

Private Sub grid1_MouseDown(Button As Integer, Shift As Integer, X As Si ngle, y As Single)

if Button = 2 Then PopupMenu mnutccd

End Sub

(2)设置各菜单的内容

A 复制

Clipboard.Clear

Clipboard.SetText grid1.Clip

B 剪切

Dim rowc As Long

Dim rowz As Long

Dim colc As Long

dim colz As Long

dim i as long

dim s as long

If grid1.Rows = 1 Then Exit Sub

Clipboard.Clear

Clipboard.SetText grid1.Clip

If grid1.RowSel > grid1.row Then

rowc = grid1.row

rowz = grid1.RowSel

Else

rowc = grid1.RowSel

rowz = grid1.row

End If

If grid1.ColSel > grid1.Col Then

colc = grid1.Col

colz = grid1.ColSel

Else

colc = grid1.ColSel

colz = grid1.Col

End If

For i = rowc To rowz

For s = colc To colz

grid1.TextMatrix(i, s) = ""

Next

Next

C 粘贴(精华部分)

Dim i As Long

Dim s As Long

Dim m As Long

Dim t As Long

If grid1.Rows = 1 Then Exit Sub

t = Len(Clipboard.GetText)

If t = 0 Then Exit Sub

For i = 1 To t

If Mid(Clipboard.GetText, i, 1) = Chr(9) Then s = s + 1

If Mid(Clipboard.GetText, i, 1) = Chr(13) Then m = m + 1 Next

If s / (m + 1) + grid1.Col > grid1.Cols - 1 Then

grid1.ColSel = grid1.Cols - 1

Else

grid1.ColSel = s / (m + 1) + grid1.Col

End If

If grid1.row + m > grid1.Rows - 1 Then

grid1.RowSel = grid1.Rows - 1

Else

grid1.RowSel = grid1.row + m

End If

grid1.Clip = Clipboard.GetText

VSFlexGrid 常用属性或方法:

.FixedRows = 1 '固定几行

.FixedCols = 1 '固定几列

.Editable = True '允许修改

.AllowUserResizing = flexResizeBoth '可调整行/列

.FocusRect = flexFocusNone '无虚框

.SelectionMode = flexSelectionListBox '焦点选中样式

.BackColor = RGB(255, 255, 255) '单元背景色

.BackColorSel = vbBlue '单元选择色

.BackColorFixed = RGB(208, 192, 160) '固定单元色

.BackColorAlternate = RGB(255, 250, 230) '间隔行背景色

.GridColor = RGB(245, 240, 210) '单元线条色

.ForeColor = RGB(0, 0, 0) '单元前景色(字符色)

.RowHeightMin = 260 '最小行高

.RowHeightMax = 800 '最大行高

.ColHeightMin = 50 '最小列宽

.ColHeightMax = 3000 '最大列宽

.ColWidth(Col) = 1000 '指定列宽

.RowHeight(Row) = 260 '指定行高

.TextMatrix(Row,Col) = "Text" '指定单元字符

.Text = "Text" '选定单元字符

.MergeCol(Col) = True '允许合并列

.MergeRow(Row) = True '允许合并行

.MergeCells = 0|1|2|3|4|5|6 '合并选项

.Cell(选项准则, Row1, Col1, Row2, Col2) '选择部分的相应准则值

.EditCell '当移动到当前单元时自动选择

.EditSelStart '移动到单元时的光标位置

.MousePointer '设置对象的鼠标指针样式 O.A = 0 到 15|99 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

几个特殊的属性方法的使用:

FormatString 属性:管道符格式化字符串示例:

下面定义对齐方式同字意,列宽窄同距离

VSG1.FormatString = "^ 中 |< 左 |> 右 |> 右 |^ 中 "

+++++++++++++++++++++++++

搜索(查找)表格中符合条件的行:

FindRow 属性:该属性返回一个行值

MsgBox VSG1.FindRow(关键词,[指定行],[指定列],[敏感],[精度])

关键词:String,表示要搜索的字符串

指定行/指定列:Long,表示只在指定的行或列中找

敏感:Boolean,

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

'限制只能在指定列输入(这里默认倒数第2列)

Private Sub VSG1_BeforeRowColChange(ByVal OldRow As Long, _

ByVal OldCol As Long, ByVal NewRow As Long, _

ByVal NewCol As Long, Cancel As Boolean)

VSG1.Editable = flexEDKbd

If VSG1.Redraw <> flexRDNone And NewCol <> VSG1.Cols - 2 Then Cancel = True

VSG1.Select NewRow, VSG1.Cols - 2

End If

End Sub

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

限制不能编辑某些列:(这里限制第1列和第3列)

Private Sub VSG1_RowColChange()

If VSG1.Col = 1 Or VSG1.Col = 3 Then

VSG1.FocusRect = flexFocusNone

VSG1.Editable = flexEDNone

'SendKeys "{TAB}"

Else

VSG1.Editable = flexEDKbd

SendKeys "{ENTER}"

End If

End Sub

或:

Private Sub VSG1_RowColChange()

If VSG1.Col = 1 Or VSG1.Col = 3 Then

SendKeys "{RIGHT}"

Else

SendKeys "{ENTER}"

End If

End Sub

或:

Private Sub VSG1_RowColChange()

If VSG1.Col = 1 Or VSG1.Col = 3 Then

VSG1.Editable = flexEDNone

Else

VSG1.Editable = flexEDKbd

VSG1.EditCell '自动选择单元内容

VSG1.EditSelStart = 0[选到最前]|1[选到指定]|Len(VSG1.Text)[选到最后] End If

End Sub

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

'对齐方式(-1标示所有)

.ColAlignment(-1) = flexAlignLeftCenter|flexAlignCenterCenter|flexAlignRig htCenter

示例1:(最后一行的第3列靠右对齐)

VSG1.Select VSG1.Rows - 1, 2

VSG1.CellAlignment = flexAlignRightCenter

示例2:

VSG1.Row = VSG1.Rows - 1: VSG1.Col = 1

VSG1.CellAlignment = flexAlignRightCenter

示例3:

VSG1.Cell(flexcpAlignment, VSG1.Rows - 1, 1, VSG1.Rows - 1, 3) = flexAli gnRightCenter

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

本对象拖放:

Private Sub VSG1_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

VSG1.Drag

VSG1.DragIcon = LoadPicture("D:\Icon.ico")

VSG1.DragRow VSG1.RowSel

End Sub

或从其它对象拖:

Private Sub VSG2_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

VSG2.OLEDrag

VSG1.OLEDropMode = flexOLEDropAutomatic

End Sub

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Public Sub VSGridCount(Optional SelRow As Long, Optional SelCol As Long) Dim X As Long, i As Long

Dim Hj1, Hj2, Hj3 As String

Const A1 = -922337203685477#, A2 = 922337203685477#

On Error GoTo ErrTransact

With frmFG.VSG1

X = .Rows - 1

.MergeCells = flexMergeFree

.MergeRow(X) = True

.Cell(flexcpText, X, 0, X, 1) = "合计"

If .Rows = 3 Then

.TextMatrix(X, 0) = 0

.Cell(flexcpText, X, 2, X, 14) = " "

.Cell(flexcpText, X, 16, X, 17) = "¥0.00"

Exit Sub

End If

'Hj1 = Val(.Aggregate(flexSTSum, 2, 2, X - 1, 2))

'Hj2 = Val(.Aggregate(flexSTSum, 2, 16, X - 1, 16))

'Hj3 = CurrencyToStr(Hj2)

For i = 2 To X - 2

Hj1 = Hj1 + Val(.TextMatrix(i, 15))

If Val(.TextMatrix(i, 16)) > 0 Then

Hj2 = Hj2 + Val(.TextMatrix(i, 15)) * Val(.TextMatrix(i, 16))

End If

Next i

If Hj2 <= A1 Or Hj2 >= A2 Then

GoTo ErrTransact

End If

Hj3 = CurrencyToStr(Hj2)

.TextMatrix(X, 2) = Hj1

.Cell(flexcpText, X, 3, X, 15) = IIf(Hj3 = "", " ", Hj3)

.Cell(flexcpText, X, 16, X, 17) = Format(Hj2, "¥0.00")

.Cell(flexcpAlignment, X, 2, X, 14) = flexAlignLeftCenter

'.Select X, 3

'.CellAlignment = flexAlignLeftCenter

If SelRow > 1 And SelCol > 0 Then .Select SelRow, SelCol

End With

Exit Sub

ErrTransact:

MsgBox "你输入的数字过大无法计算!请修改!!!"

End Sub

------------------------------------------------

将数字转换为大写金额的函数:

Function CurrencyToStr(ByVal Number As Currency) As String

Number = Val(Trim(Number))

If Number = 0 Then CurrencyToStr = "": Exit Function

Dim str1Ary As Variant, str2Ary As Variant

str1Ary = Split("零壹贰叁肆伍陆柒捌玖")

str2Ary = Split("分角元拾佰仟万拾佰仟亿拾佰仟万拾佰")

Dim a As Long, b As Long '循环基数

Dim tmp1 As String '临时转换

Dim tmp2 As String '临时转换结果

Dim Point As Long '小数点位置

If Number <= -922337203685477# Or Number >= 922337203685477 # Then

Exit Function

End If

tmp1 = Round(Number, 2)

tmp1 = Replace(tmp1, "-", "") '先去掉“-”号

Point = InStr(tmp1, ".") '取得小数点位置

If Point = 0 Then '如果有小数点,最大佰万亿

b = Len(tmp1) + 2 '加2位小数

Else

b = Len(Left(tmp1, Point + 1)) '包括点加2位小数

End If

''先将所有数字替换为中文

For a = 9 To 0 Step -1

tmp1 = Replace(Replace(tmp1, a, str1Ary(a)), ".", "")

Next

For a = 1 To b

b = b - 1

If Mid(tmp1, a, 1) <> "" Then

If b > UBound(str2Ary) Then Exit For

tmp2 = tmp2 & Mid(tmp1, a, 1) & str2Ary(b)

End If

Next

If tmp2 = "" Then CurrencyToStr = "": Exit Function

''〓下面为非正式财务算法,可以去掉〓

For a = 1 To Len(tmp2)

tmp2 = Replace(tmp2, "零亿", "亿零")

tmp2 = Replace(tmp2, "零万", "万零")

tmp2 = Replace(tmp2, "零仟", "零")

tmp2 = Replace(tmp2, "零佰", "零")

tmp2 = Replace(tmp2, "零拾", "零")

tmp2 = Replace(tmp2, "零元", "元")

tmp2 = Replace(tmp2, "零零", "零")

tmp2 = Replace(tmp2, "亿万", "亿")

Next

''〓上面为非正式财务算法,可以去掉〓

If Point = 1 Then tmp2 = "零元" + tmp2

If Number < 0 Then tmp2 = "负" + tmp2

If Point = 0 Then tmp2 = tmp2 + "整"

CurrencyToStr = tmp2

End Function

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Cell 属性的使用:

Cell 的作用是给以选定区块的特定的设置值,具体值可参阅相应属性值。语法:Cell(条件准则, Row1, Col1, Row2, Col2) = 相应准则值

其中的“条件准则”有以下准则常数,根据准则的不同而设置相应准则的值:flexcpAlignment 对齐方式

flexcpBackColor 背景色

flexcpChecked 选择框

flexcpCustomFormat 格式设置

flexcpData 日期

flexcpFloodColor 颜色

flexcpFloodPercent 背景色

flexcpFont 字体

flexcpFontBold 粗体

flexcpFontItalic 斜体

flexcpFontName 字体名

flexcpFontSize 字体大小

flexcpFontStrikethru 删除线

flexcpFontUnderline 下划线

flexcpFontWidth 字符宽

flexcpForeColor 字符色

flexcpHeight 高

flexcpLeft 左

flexcpPicture 添加图

flexcpPictureAlignment 图对齐

flexcpRefresh 刷新

flexcpSort 分类

flexcpText 字符

flexcpTextDisplay 显示字符

flexcpTextStyle 文本样式

flexcpTop 返回顶端高,同 RowPos 和 valueMatrix 属性flexcpvalue 返回字符值

flexcpVariantvalue 返回字符值

flexcpWidth 返回单元宽

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━flexSTSum 方法:每行增加小计行[这个方法还不会用]语法:

VSG.flexSTSum 常数名,

[GroupOn As Long], :标签列

[TotalOn As Long], :计算列

[Format As String], :格式,例 "$0.00"

[BackColor As Color], :Color

[ForeColor As Color], :Color

[FontBold As Boolean], :False|True

[Caption As String], :例 "数 %s"

[MatchFrom As Integer], :0|1|2|3

[TatalOnly As Boolean] :False|True

常数名:

常数常数值说明

flexSTNone 0 大纲唯一的,没有合计价值

flexSTClear 1 清除全部的小计

flexSTSum 2 总数

flexSTPercent 3 总数的百分比

flexSTCount 4 行数

flexSTAverage 5 平均

flexSTMax 6 最大的

flexSTMin 7 最小的

flexSTStd 8 标准偏差

flexSTVar 9 方差

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━MousePointer、MouseIcon 鼠标指针的应用:

0=flexDefault

1=flexArrow

2=flexCross

3=flexIBeam

4=flexIcon

5=flexSize

6=flexSizeNESW

7=flexSizeNS

8=flexSizeNWSE

9=flexSizeEW

10=flexUpArrow

11=flexHourglass

12=flexNoDrop

13=flexArrowHourGlass

14=flexArrowQuestion

15=flexSizeAll

50=flexPointerCopy '(&H32) '拖动带拷贝

51=flexPointerMove '(&H33) '拖动

52=flexSizeHorz '(&H34) '左右调整

53=flexSizeVert '(&H35) '上下调整

54=flexHand '(&H36) 手型

99=flexCustom '自定义

Const MA = "50,51,52,53,54"

Dim xy As Integer

xy = Val(Text1.Text)

If xy > 15 And xy <> 99 And InStr(MA, xy) = 0 Then xy = 15 VSG1.MousePointer = xy

If xy = 99 Then

VSG1.MouseIcon = LoadPicture("C:\icon\Icon.ico")

End If

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━单击列头将列互相拖动调换:

原生JavaScript对于DOM的操作总结

一、DOM创建** DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性。DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: 1:Element,元素 2:Attribute,属性 3:Text,文本 DOM节点创建最常用的便是document.createElement和document.createTextNode方法: var node1 = document.createElement('div'); var node2 = document.createTextNode('hello world!'); **二、DOM查询** // 返回当前文档中第一个类名为"myclass" 的元素 var el = document.querySelector(".myclass"); // 返回一个文档中所有的class为"note"或者"alert"的div元素 var els = document.querySelectorAll("div.note, div.alert"); // 获取元素 var el = document.getElementById('xxx'); var els = document.getElementsByClassName('highlight'); var els = document.getElementsByTagName('td'); Element也提供了很多相对于元素的DOM导航方法: // 获取父元素、父节点 var parent = ele.parentElement; var parent = ele.parentNode;//只读,没有兼容性问题 var offsetParent=ele.offsetParent;//只读,找到最近的有定位的父节点。//没有定位父级时,默认是body;但在IE7以下,如果当前元素没有定位属性,返回body,如果有,返回HTML;//如果当前元素某个父级触发了haslayout,则返回触发了haslayout这个元素。 // 获取子节点,子节点可以是任何一种节点,可以通过nodeType来判断 var nodes = ele.children;//标准下、非标准下都只含元素类型,但对待非法嵌套的子节点,处理方式与childNodes一致。 var nodes = ele.childNodes;//非标准下:只包含元素类型,不会包含非法嵌套的子节点。 //标准下:包含元素和文本类型,会包含非法嵌套的子节点。 //获取元素属性列表 var attr = ele.attributes;

LabVIEW 属性节点初级课程

可以选择真时继续()。 计数接线端:表示已经完成的循环次数,该计数从0开始。在本例中,如果当产生的第13个点值超过0.9时,计数器值为12。 结构隧道: 当需要将循环中的数据传入或者传出时,我们使用隧道的方式(这一点将在后面详细介绍)。 2. For 循环 For 循环常用于已知代码循环次数的情况,比如数组的操作。下面是For 循环的流程图: 2.1 For 循环的流程图 我们通过以下的例子来具体介绍以下For 循环: 如图 2.2,使用For 循环产生一个3×4的二维随机数组。(该程序见附件Generate array.vi ) 图2.2 For 循环产生3×4的二维随机数组 属性节点初级课程 控件的大部分属性都可以通过属性对话框ā行设置,对于未包括的属性则需要通过属性节点来编程操作了。属性节点用于访问对象的属性。在某些应用程序中,可能需要通过编程使前面板对象对特定的输入作出响应,使其显示不同的外观。 例如,当用户输入一个无效的密码时,红色指示灯开始闪烁。 又如,改变图表上线条的颜色, 当数据点高于某一特定的值时,希望显示的线条是红色而不是绿色。 使用属性节点可通过编程来完成这些修改。 也可使用属性节点通过编程来调整前面板对象的大小、隐藏前面板的部分内容、向图形中添加光标等。 LabVIEW 的属性节点功能强大、用途多样,不同控件对象有不同的属性。 本课程将介绍一些特别的属性的范例,这些属性可用于改变前面板对象的外观和功能。 关于属性节点的更多信息见LabVIEW 帮助。1. 创建属性节点 右键单击前面板对象,从快捷菜单中选择创建? 属性节点,再从弹出的菜单中选择一个属性,这样就创建了该前面板对象的一个属性节点。同时,LabVIEW 会在程序框图上创建一个与该前面板对象隐含链接的属性节点。 如果对象自带标签,属性节点将有同样的标签。 创建节点之后可以修改该标签。 同一个对象可以创建多个属性节点。2. 使用属性节点 属性节点创建后,节点最初有一个代表某个属性的接线端,您可以通过对其进行修改来更改对应的前面板对象的属性。 属性节点上的这个接线端既可用于设置(写入)属性,也可用于获取(读取)该属性的当前状态。(某些属性节点是只读/只写的除外)。 例如,如果为一个数字数值控件创建了属性节点,则该节点将在程序框图上显示,其可见属性默认为选中。 接线端右侧出现的小箭头表示正在读取属性值。右键单击接线端并从快捷菜单中选择转换为写入则改为写入操作。 将布尔假值连接到可见属性接线端,则属性节点接受数据时前面板上不出现该数值控件。将布尔真值连 接到可见属性接线端,则前面板上将出现该控件。见图1:

HTML DOM简要教程

第一部分HTML DOM简介 1 DOM简介 HTML文档对象模型 HTML文档对象模型(Document Object Model)定义了访问和处理 HTML 文档的标准方法。HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)。 什么是 DOM? 通过JavaScript,您可以重构整个HTML文档。您可以添加、移除、改变或重排页面上的项目。 要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。 DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3) DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档。 ?Core DOM 定义了一套标准的针对任何结构化文档的对象 ?XML DOM定义了一套标准的针对XML 文档的对象 ?HTML DOM定义了一套标准的针对HTML 文档的对象 2 DOM节点 节点 根据 DOM,HTML 文档中的每个成分都是一个节点。

DOM 是这样规定的: ?整个文档是一个文档节点 ?每个HTML 标签是一个元素节点 ?包含在HTML 元素中的文本是文本节点 ?每一个HTML 属性是一个属性节点 ?注释属于注释节点 Node层次 节点彼此都有等级关系。 HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。 下面这个图片表示一个文档树(节点树): 3 DOM节点树 文档树(节点数)

DOMDocument属性与方法

最近发现DOMDocument对象很重要,还有XMLHTTP也很重要 注意大小写一定不能弄错. 属性: 1Attributes 存储节点的属性列表(只读) 2childNodes 存储节点的子节点列表(只读) 3dataType 返回此节点的数据类型 4Definition 以DTD或XML模式给出的节点的定义(只读) 5Doctype 指定文档类型节点(只读) 6documentElement 返回文档的根元素(可读写) 7firstChild 返回当前节点的第一个子节点(只读) 8Implementation 返回XMLDOMImplementation对象 9lastChild 返回当前节点最后一个子节点(只读) 10nextSibling 返回当前节点的下一个兄弟节点(只读) 11nodeName 返回节点的名字(只读) 12nodeType 返回节点的类型(只读) 13nodeTypedV alue 存储节点值(可读写) 14nodeV alue 返回节点的文本(可读写) 15ownerDocument 返回包含此节点的根文档(只读) 16parentNode 返回父节点(只读) 17Parsed 返回此节点及其子节点是否已经被解析(只读) 18Prefix 返回名称空间前缀(只读) 19preserveWhiteSpace 指定是否保留空白(可读写) 20previousSibling 返回此节点的前一个兄弟节点(只读) 21Text 返回此节点及其后代的文本内容(可读写) 22url 返回最近载入的XML文档的URL(只读) 23Xml 返回节点及其后代的XML表示(只读) 方法: 1appendChild 为当前节点添加一个新的子节点,放在最后的子节点后2cloneNode 返回当前节点的拷贝 3createAttribute 创建新的属性 4create视频教程'>cdA TASection 创建包括给定数据的CDA TA段 5createComment 创建一个注释节点 6createDocumentFragment 创建DocumentFragment对象 7createElement 创建一个元素节点 8createEntityReference 创建EntityReference对象 9createNode 创建给定类型,名字和命名空间的节点 10createPorcessingInstruction 创建操作指令节点 11createTextNode 创建包括给定数据的文本节点 12getElementsByTagName 返回指定名字的元素集合

javascript获取指定节点父节点、子节点的方法

用javascript获取指定节点父节点、子节点的方法 我们在实际的开发当中经常要获取页面中某个html元素,动态的更新该元素的样式、内容属性等。 那么如何获取要更新的这些元素呢?用JavaScript获取这些节点的方法有很多种,下面是总结的一些方法. 1. 通过document节点获取: (1)document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),参数仍然是节点的id。这个方法可以看作是document.getElementById()的另外一种写法,不过$()的功能更为强大,具体用法可以参考它们各自的API文档。 (2)document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。 例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可。 (3)document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:document.getElementsByTagName('A')将会返回页面上所有超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比较简单。但是缺点也是显而易见,那就是返回的数组可能十分庞大,这样就会浪费很多时间。那么,这个方法是不是就没有用处了呢?当然不是,这个方法和上面的两个不同,它不是document 节点的专有方法,还可以应用其他的节点,下面将会提到。 2、通过父节点获取: (1)parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以获得更深层次的节点。 (2)https://www.doczj.com/doc/8f18420205.html,stChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。 在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:https://www.doczj.com/doc/8f18420205.html,stChild... (3)parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。 注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox2.0.0.11上获取的是所有子节点即包括子节点的子节点。 (4)parentObj.children:获取已知节点的直接子节点数组。 注意:经测试,在IE7上,和childNodes效果一样,而Firefox2.0.0.11不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。 (5)parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:parentObj.getElementsByTagName('A')返回已知的子节点中的所有超链接。

labview属性节点

很多朋友对于属性节点的使用表示有些不明白,但是其作用又是相当强大的,所以必须明白怎么使用属性节点以及如何调用的问题,下面就来为大家解迷。 在获得对象的reference之后,就可以使用属性节点(Property Node)和调用节点(Invoke Node)来设定对象属性和调用对象提供的固有方法(Method)。 属性节点的一般形式如图1所示: 图1 属性节点 属性节点的最上面有两个输入参数和两个输出参数,输入参数reference用于接入对象的reference,输入的reference参数在被复制之后从reference out输出,可以再接入下一个使用reference作为输入参数的节点或函数。其他两个输入、输出参数用于错误处理。当接入某一个reference后,在class的位置会出现与该reference对应对象类别名称,比如App(Application)表示接入的是应用程序的reference,VI表示接入的是VI的reference等。reference输入参数一般有默认值,例如当类别(class)为Application时,其默认值为当前运行的应用程序的reference;当类别为VI时,其默认值为节点所在VI的reference。name1,name2等端子为属性端子,name1和name2代表属性名。 在属性端子上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Properties的属性列表子菜单,在同样的快捷菜单里Change to Read和Change to Write选项将把端口在写端口和读端口之间转换,各个端子之间的读写状态互不影响。某些属性只能读不能写。在默认情况下类型名class和属性名name 1等采用的是“短名称”的表示方法,在属性节点上弹出右键快捷菜单,选择Name Format->Long Names将打开“长名称”的显示方式。如图2 所示: 图2 新放置的属性节点 作为一个例子,为第一个端子选择Operation https://www.doczj.com/doc/8f18420205.html,属性,该属性表示运行程序的操作系统名称。运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。Operation https://www.doczj.com/doc/8f18420205.html,为只读属性。reference参数使用了默认值,即当前运行的应用程序的reference,这同使用空的machine name参数调用Open Application Reference 参数返回的结果完全相同。

DOM获取节点的三种常用方法

Dom对象的常用方法: (1)getElementById() 查询给定ID属性值的元素,返回该元素的元素节点 1、查询给定ID属性值的元素,返回该元素的元素节点。也称为元素对象。 2、因为在一个html页面中id的值是唯一的,所以返回值也是唯一的。所以方法的名称为getElementById()而不是getElementsById() 3、该方法只能用于document对象,类似与java的static关键字。 (2)getElementsByName()查找给定name属性的所有元素,这个方法将返回一个节点集合,也可以称为对象集合 1、查找给定name属性的所有元素,这个方法将返回一个节点集合,也可以称为对象集合。 2、这个集合可以作为数组来对待,length属性的值表示集合的个数。 3、因为在html页面中,name不能唯一确定一个元素,所以方法的名称为getElementsByName而不是getElementByName (3)getElementsByTagName()查询给定标签名的所有元素 1、查询给定标签名的所有元素 2、因为在html页面中,标签名不是唯一的,所以返回值为节点的集合。 3、这个集合可以当做数组来处理,length属性为集合里所有元素的个数 4、可以有两种形式来执行这个方法: 1、var elements =document.getElementsByTagName(tagName); 2、var elements = element.getElementsByTagName(tagName); 5、从这两种方法可以看出持有这个方法的对象并不一定是整个文档对象(document).也可以是某一个元素节点。 (4)hasChildNodes()该方法用来判断一个元素是否有子节点,返回值为true或者false 1、该方法用来判断一个元素是否有子节点 2、返回值为true或者false 3、文本节点和属性节点不可能再包含子节点,所以对于这两类节点使用ChildNodes()方法返回值永远为false. 4、如果hasChildNodes()返回值为false,则childNodes,firstChild,lastChild 将为空数组或者空字符串。 (5)nodeName 1.如果节点是元素节点,nodeName返回元素的名称 2.如果给定节点为属性节点,nodeName返回属性的名称 3.如果给定节点为文本节点,nodeName返回为#text的字符串 (6)nodeType 1、元素节点类型值为1 2、属性节点类型值为2

ACAA 认证前端工程师参考样题

ACAA认证前端工程师参考样题 1)构成一个网页的两个最基本的元素? 1.文字和图片 2.音乐和链接 3.图片和链接 4.动画和音乐 参考答案:1 2)下列哪个是区段标签: 1.
2.


3.