我们如何比较两个HTML元素是否相同?
我尝试过这件事,但没有运气
<div class="a"> Hi this is sachin tendulkar </div>
<div class="a"> Hi this is sachin tendulkar </div>
Run Code Online (Sandbox Code Playgroud)
然后点击按钮,我调用一个函数检查()
var divs = $(".a");
alert(divs.length); // Shows 2 here which is correct
if (divs.get(0) == divs.get(1)) alert("Same");
Run Code Online (Sandbox Code Playgroud)
但这不起作用.两个div中的一切都是一样的.除此之外,我们如何比较两个HTML元素是否完全一致.包括他们的innerHTML,className,Id及其属性.
这可行吗?
实际上,我有两个HTML文档,我想从它们中删除相同的内容所以两个元素可以具有相同的ID.
PS:在Crowder的宝贵意见后更新.如果我们将两个元素作为字符串进行比较,我们就不会得到匹配,因为它们的属性顺序可能会有所不同所以唯一的选择是迭代每个子属性并匹配.我仍然需要弄清楚完全有效的实施策略.
正如问题所说,我只想知道chrome扩展中后台脚本和内容脚本之间的区别.当我在两个脚本中记录chrome对象时,我发现了不同的对象.
我想在点击图标时将我的javascript注入页面所以在manifest.json
我添加内容脚本但我无法在内容脚本中收听图标点击事件.
chrome.browserAction未在内容脚本中的chrome对象中定义.
如何在内容脚本中侦听单击事件.我们可以同时包含背景和内容脚本吗?
这是我的manifest.json
{
"name": "First Plugin Testing",
"version": "1.0",
"manifest_version": 2,
"description": "Trying hands on first extension",
"background": { "scripts": ["background.js"] },
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"tabs", "http://*/*", "https://*/*"
],
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["temp.js"]
}
]
}
Run Code Online (Sandbox Code Playgroud) 我想知道:是否有之间的任何显著差异forEach
和for
循环在JavaScript中.
考虑这个例子:
var myArray = [1,2,3,4];
myArray.forEach(function(value) {
console.log(value);
});
for (var i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
}
Run Code Online (Sandbox Code Playgroud)
以下是我研究的一部分:
例如:您想知道数字是否为素数.我认为使用for循环比使用forEach循环要容易得多.
我的问题是:
事件处理程序是在JavaScript中同步还是异步执行的?这是JS bin,它显示了事件处理程序是同步执行的.
码:
$('#toclick').bind('custom', function() {
for (var i=0; i<100000; i++) {}
console.log('Inside click handler');
});
$('#toclick').trigger('custom');
console.log('Outside click handler');
Output:
Inside click handler
Outside click handler
Run Code Online (Sandbox Code Playgroud)
这意味着如果我们触发事件,除非执行所有事件处理程序,否则不会执行它下面的代码.我对吗 ?
我想调试我的javascript代码,并能够在源选项卡下的所需位置成功放置断点.
但是,我遇到了一个问题,我想调试我的内联javascript代码.我们是否有任何chrome调试工具功能,我可以调试我的内联JavaScript代码.
我也可以使用Firebug进行调试.
PS:通过内联javascript代码,我的意思是在body标签内和同一个文件中的JS代码.
我知道我可以使用grep在这样的文件夹中的所有文件中找到一个单词
grep -rn core .
Run Code Online (Sandbox Code Playgroud)
但我当前的目录有很多子目录,我只想搜索当前目录及其所有子目录中的所有xml文件.我怎样才能做到这一点 ?
我试过这个
grep -rn core *.xml // Does not work
Run Code Online (Sandbox Code Playgroud)
但它只搜索当前目录中的xml文件.它不会递归地执行.
Chrome扩展程序是否可以使用chrome扩展程序获取所有标签中的所有网址?
我使用此代码获得了当前Tab的url
chrome.tabs.getSelected(null, function(tab) {
tabUrl = tab.url;
alert(tabUrl);
});
Run Code Online (Sandbox Code Playgroud)
我们需要manifest.json文件中的以下权限
"permissions": [
"tabs"
]
Run Code Online (Sandbox Code Playgroud)
我的问题是找出所有标签中的网址?
有一个按钮,当用户点击按钮时,一些数据被保存到后端.问题是当用户非常快速地点击按钮时,事件处理程序将被多次执行.
这是代码
var x = 1;
$('#button').click(function() {
// Do something
// Save some data on network
x++;
console.log(x);
});
Run Code Online (Sandbox Code Playgroud)
我希望当用户单击按钮一次时执行此处理程序.即使在双击或三击的情况下,也只能执行一次.我只是想避免快速点击,这个处理程序可以再次执行
我心中有多种解决方案
定义一个全局变量IS_BUTTON_HANDLER_WORKING = false
,当你输入处理程序时将其设置为true,最后再将它设置为false.并检查是否真的只是从函数返回.
在开头分离处理程序并在最后重新附加.
假设您的应用程序中有25个按钮.应该是实现这一目标的最佳方法.
看看这个小提琴
$('#button').click(function() {
$(this).attr('disabled', true);
// Do something
// Save some data on network
$(this).removeAttr('disabled');
});
Run Code Online (Sandbox Code Playgroud)
使用这个,我们确信我们的下一个处理程序只有在完全执行上一次执行时才会执行.
我正在尝试使用JQuery在Ajax中添加标头请求.
以下是代码: -
$.ajax({ type: "POST", contentType: "application/json", url: "http://localhost:8080/core-service/services/v1.0/patients/registerPatients", data: JSON.stringify(patientDTO), //crossDomain : true, dataType: 'json', headers: {"X-AUTH-TOKEN" : tokken}, success: function(patientDTO) { console.log("SUCCESS: ", patientDTO); /* location.href = "fieldagentHRA.html";*/ if (typeof(Storage) !== "undefined") { localStorage.setItem("patUrn", patientDTO.data); location.href="fieldagentHRA.html"; } }, error: function(e) { console.log("ERROR: ", e); display(e); }, done: function(e) { enableRegisterButton(true); } });
然后我使用了Requestly(Requestly是chrome + firefox插件,我们可以手动为请求添加标头).
手动添加标题后: -
在两个图片请求标题中,x-auth-token存在于"ACCESS-CONTROL-REQUEST-HEADERS"中,但是"X-AUTH-TOKEN"标题连同标题值存在于第二pic中,而第二pic中不存在第一pic.
所以我的问题是如何使用JQuery在Ajax中添加请求头?
我想知道是否有相当于:-webkit-appearance: none;
for firefox?
我想要什么?
<select ...>
<option>...</option>
<more option>
</select>
Run Code Online (Sandbox Code Playgroud)
谢谢.
javascript ×4
jquery ×3
html ×2
ajax ×1
asynchronous ×1
css ×1
css3 ×1
debugging ×1
for-loop ×1
foreach ×1
grep ×1
header ×1
inline ×1
jquery-ajaxq ×1
linux ×1
loops ×1
performance ×1
regex ×1
synchronous ×1
tabs ×1
url ×1