我目前正在使用Access 2003中的VBA自动使用wordpress编辑器,但是希望扩展自动化以包括选择类别,分类项目等。 这与Checkbox列表有关。 具有相同结构的示例如下:http://devblog.xing.com/frontend/the-checkbox-list/
我的列表基于地理实体的层次结构:在本地数据库中,我可能拥有与该地区相关的数据:例如阿尔及利亚。 我希望能够使用(即As SHDocVw.InternetExplorer)ie.document.what?
我有点迷失于优雅的方法。我还没有尝试过,但我想我可以为每个selectit类获取innerhtml,检查它是否包含我的关键字an if if so使用一些字符串操作提取输入id,然后使用ie.document.getelementbyid (“无论什么”)。单击“检查”或“切换”
但是有更好的方法吗?
(最后我将不得不看看如何连接到远程数据库并从那里拖动tag_id - 但我认为这会更快,特别是在更大意义上的自动化功能已经存在)
任何指示赞赏!
<ul id="localitieschecklist" class="categorychecklist form-no-clear"
data-wp-lists="list:localities">
<li id="localities-8" class="popular-category">
<label class="selectit">
<input id="in-localities-8" type="checkbox" name="tax_input[localities][]" value="8"> </input>
Africa
</label>
<ul class="children"><li id="localities-96">
<label class="selectit"><input id="in-localities-96" type="checkbox" name="tax_input[localities][]" value="96"></input>
Algeria
</label>
答案 0 :(得分:0)
感谢你的帮助@Tim Williams。我不确定它是否适用于优雅的前端,但它使我能够继续前进,我对列表的分层性质感到有点头疼,并且时间因为只支持层次结构的前两个级别而导致的折衷。它现在会做,但任何进一步的评论肯定是受欢迎的!
<强>地区强>
If artClassLocalities <> "" And Not IsNull(artClassLocalities) Then
artClasses = Split(artClassLocalities, ",")
Set Element = .Document.getElementByID("localitieschecklist")
For i = 0 To Element.childNodes.Length - 1 'the element collection represents the globe
'popular category items (6) one for each landmass
Set Landmass = Element.childNodes(i)
'landmass has 2 nodes
'child 1 is the selectitnode node 0 (item 1)
If InStr(1, artClassLocalities, Right(Landmass.childNodes(0).innerText, Len(Landmass.childNodes(0).innerText) - 1)) Then
Call Landmass.childNodes(0).childNodes(0).setAttribute("checked", True)
Else
Call Landmass.childNodes(0).childNodes(0).setAttribute("checked", False)
End If
For j = 0 To Landmass.childNodes(1).childNodes.Length - 1 'the children are the countries
Set Country = Landmass.childNodes(1).childNodes(j) ' a given child is a country
If InStr(1, artClassLocalities, Right(Country.childNodes(0).innerText, Len(Country.childNodes(0).innerText) - 1)) Then
Call Country.childNodes(0).childNodes(0).setAttribute("checked", True)
Else
Call Country.childNodes(0).childNodes(0).setAttribute("checked", False)
End If
'Support for Subregions not yet functional
'For k = 0 To Country.childNodes(1).childNodes.Length - 1
'Set PAndADiv = Country.childNodes(j)
Next
Next
End If