这是我正在运行的脚本:
//Require CasperJS
var casper = require('casper').create();
//Scraping Courserank
var base = "https://www.courserank.com";
var home = base + "/w/home";
var schools = base + "/w/schools?switchSchool=1";
//First, navigate to homepage and login
casper.start(home, function() {
console.log('Logging in...');
//Fill in the login form
this.fill(
'form[action="login"]',
{ username : 'hatboysam@gmail.com', password : "****" },
true
);
});
function getSchools() {
var arr = document.querySelectorAll('div.link');
return arr;
}
//Go to the schools page
casper.then(function() {
console.log(this.getCurrentUrl());
//Open the school choice page
casper.open(schools).then(function() {
console.log(this.getCurrentUrl()); …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
public void Login() {
try{
DocumentBuilderFactory builderfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = builderfactory.newDocumentBuilder();
File path = new File("src/dataPengguna/dataPengguna.xml");
Document doc = db.parse(path);
Element pengguna = (Element) doc.getElementsByTagName("pengguna");
NodeList list = pengguna.getElementsByTagName("user");
for (int i = 0; i < list.getLength(); i++) {
Element user = (Element) list.item(i);
Node username = user.getElementsByTagName("username").item(i);
Node password = user.getElementsByTagName("password").item(i);
if(loginuser.getText().equals(username.getTextContent())
&& loginpass.getText().equals(password.getTextContent())){
JOptionPane.showMessageDialog(rootPane, "welcome");
}
}
}catch(Exception e){
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的xml:
<?xml version="1.0" encoding="UTF-8"?>
<pengguna>
<user>
<nama>septian</nama>
<username>septiansykes</username>
<password>1234</password>
<status>belumpinjam</status>
</user>
<user>
<nama>koko</nama> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将NodeList转换为String,因此我可以按照我想要的方式操作它,但我似乎无法在线找到答案.
我已经尝试将NodeList存储在Node数组中,但打印出的所有数据都将为null.
TextingXPath.java
import java.io.IOException;
public class TestingXPath {
static Node[] copy;
static int length;
public static void main(String[] args) throws SAXException, IOException,
ParserConfigurationException {
URL obj = new URL("http://jbossews-ashton.rhcloud.com/testXML.jsp");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == 200) {
DocumentBuilderFactory domFactory = DocumentBuilderFactory
.newInstance();
try {
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document dDoc = builder.parse(con.getInputStream());
XPath xPath = XPathFactory.newInstance().newXPath();
Node node = (Node) xPath.evaluate(
"/HDB/Resident[@Name='Batman ']/Preference", dDoc,
XPathConstants.NODE);
if (null != node) {
NodeList nodeList …Run Code Online (Sandbox Code Playgroud) 我有一个调用返回的对象的节点列表document.getElementsByClassName('a').其中一些对象有一个额外的类b.如何创建包含这两个类的元素数组?我没有使用b的全局搜索.我更喜欢vanillaJS/ES6代码.
HTML代码示例:
<div class ="a"></div>
<div class ="a"></div>
<div class ="a b"></div>
<div class ="a"></div>
<div class ="a b"></div>
<div class ="a"></div>
Run Code Online (Sandbox Code Playgroud) 我正在通过Java解析XML文件,并且能够解析XML文件中的节点,如下所示:
<name><given>familyName</given></name>
通过使用如下所示的代码段之类的代码:
NodeList givenElmntLst = firstElement.getElementsByTagName("given");
Element givenNmElmnt = (Element) givenElmntLst.item(0);
NodeList fstNm = givenNmElmnt.getChildNodes();
String given = ((Node) fstNm.item(0)).getNodeValue();
Run Code Online (Sandbox Code Playgroud)
但我无法读取格式如下的属性:
<birthTime value="19230101"/>
Run Code Online (Sandbox Code Playgroud)
我应该如何以不同方式阅读上述值?提前致谢.
如何评估DOMTXpath-> query是否实际返回数据.现在我正在做($ xml是一个DOMXpath对象):
foreach($xml->query($xpath) as $node)
{
echo $node->textContent;
}
Run Code Online (Sandbox Code Playgroud)
但如果我的$ xpath不会导致节点,它就不会输出任何数据.我尝试过类似的东西:
if ($xml->query($xpath))
{
echo "found";
}else{
echo "not found";
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.如何测试我的查询是否实际返回匹配的节点(在这种情况下实际上是一个属性)?
我厌倦了在简单的项目中包含jquery,但我已经习惯了它,我正试图打破自由形式对它的依赖.我正在尝试创建一个函数,它将获得类似于类和标记的选择器的相同感觉.示例:$('selector').innerHTML = ".something";.我一个接一个地循环遍历它们:
var classElements = document.querySelectorAll('.something');
for (var i = classElements.length - 1; i >= 0; i--) {
classElements[i].innerHTML = "This Is A Div";
}
Run Code Online (Sandbox Code Playgroud)
但我想创建一个函数,我可以循环选择器而不必为我想要找到的所有内容写出for循环.所以我可以像上面那样写它$('.something').innerHTML = "something";
到目前为止,这是我所拥有的,但它只会获得每个选择器的第一个,并且不会获得所有选择器.毋庸置疑,我非常困难,而且我对这个主题的阅读越多,我就越困惑.我想知道是否有人可以指出我正确的方向,我的想法有缺陷或解释jquery如何做到这一点.这是我的代码:
window.getElements = function(selector) {
var selectors = document.querySelectorAll(selector);
for (var i = selectors.length - 1; i >= 0; i--) {
var elements = selectors[i];
}
return elements;
};
getElements(".something").innerHTML = "something";
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴小提琴
我知道我可以使用 jQuery(如何使用 jquery 获取多个复选框值)来获取多个复选框值,但是我的复选框输入在 html 表单中,所以那些 jQuery 解决方案不起作用,因为它们都没有得到表单中的复选框值。
我尝试从表单中提取值,但它只是创建了一个奇怪的无线电节点列表,它似乎计算复选框名称出现在文档中的次数而不是值。
function validateForm() {
var checks = document.forms["TestForm"]["ParticipantSelection[]"];
alert(checks);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<form name="TestForm" action="Video1.php" method="post" onsubmit="return validateForm()">
<table>
<tr>
<th><img name="<?php echo $valueindicator[0];?>" src="<?php echo $all_four_images[0];?>" height="100">
</th>
<th><img name="<?php echo $valueindicator[1];?>" src="<?php echo $all_four_images[1];?>" height="100">
</th>
<th><img name="<?php echo $valueindicator[2];?>" src="<?php echo $all_four_images[2];?>" height="100">
</th>
</tr>
<tr>
<th> <input type="checkbox" name="ParticipantSelection[]" value="image1">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="image2">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="image3">
</th>
</tr>
</table>
<input …Run Code Online (Sandbox Code Playgroud)传统上,在Javascript中删除节点子节点的建议方法是执行以下操作:
while(node.firstChild) {
node.removeChild(node.firstChild);
}
Run Code Online (Sandbox Code Playgroud)
最近,我尝试使用内置的forEach()方法删除所有节点的子节点:
node.childNodes.forEach(child => {
node.removeChild(child);
}
Run Code Online (Sandbox Code Playgroud)
这没有像我预期的那样发挥作用.forEach停止执行,而不是删除所有子节点,而是留下剩余的节点.我最终要做的是使用Array.from:
Array.from(node.childNodes)
Run Code Online (Sandbox Code Playgroud)
然后我可以用forEach删除节点.我不能使用上面提到的传统方法的原因是因为某些原因,一个孩子总是被遗忘,导致无限循环.
为什么childNodes.forEach方法没有像我想的那样删除所有节点?我有什么误会?
我在html中设置了一些包含autoplay选项的元素.我发现Chrome似乎并不特别愿意出于任何原因自动播放这些视频.我想添加一些javascript来设置视频加载后播放.我知道我需要在有问题的DOM元素上使用play()方法.
我正在使用:
document.getElementsByTagName('video').play();
Run Code Online (Sandbox Code Playgroud)
此代码成功自动播放我的视频元素.但是,它也会在控制台中引发错误
未捕获的TypeError:对象#<NodeList>没有方法'play'
我之前没有遇到过这个错误,它正在停止我的其余javascript以便正确执行.关于这是什么以及如何解决它的任何想法?
谢谢!
我有一个向页面添加按钮的功能.
var count = 0;
function createOnclickFunction(number)
{
return function()
{
alert("This is button number " + number);
}
}
function addButton(data)
{
var newbutton = "..." //creates string from data
var element = document.getElementById("mydiv");
var children = element.children;
element.innerHTML = newbutton + element.innerHTML;
var currentCount = count;
children[0].onclick = createOnclickFunction(currentCount)
count++;
}
Run Code Online (Sandbox Code Playgroud)
它基本上根据一些数据在html中创建一个按钮.
每次我添加一个按钮,我希望它被添加到div的开头#mydiv,并且由于newbutton也不是Element,但是a String,我必须修改innerHtml以将其添加到开头#mydiv.
之后,我必须通过获取第一个孩子来获取元素(添加onclick)#mydiv.
但是,在我的页面添加第二个按钮后,第一个按钮onclick不再有效.
如果我修改我的代码只添加一个按钮,一切正常.
现在,只需单击顶部按钮(最新添加的按钮)即可.
我怎样才能解决这个问题?
我也试过用element.firstChild而不是element.children[0].
在此先感谢大家!
编辑:
这是一个jsfiddle :(你可以看到唯一有效的按钮是stackoverflow …