Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在下面的场景中,使用javascript和/或jQuery获取所有必要数据的选项是什么?_Javascript_Jquery - Fatal编程技术网

在下面的场景中,使用javascript和/或jQuery获取所有必要数据的选项是什么?

在下面的场景中,使用javascript和/或jQuery获取所有必要数据的选项是什么?,javascript,jquery,Javascript,Jquery,我不知道如何最好地表达这个词,所以我会尝试一下,并希望在遇到问题时修改它 使用javascript/jQuery,假设我想从单击的元素中获取一些数据到函数进行处理。有两种选择: 备选案文1: $('.classOfInterest').click(function() { // How can I get 'a' and 'b'? var c = $(this).hasClass('cExists'); }); <a class="cExists classOfIn

我不知道如何最好地表达这个词,所以我会尝试一下,并希望在遇到问题时修改它

使用javascript/jQuery,假设我想从单击的元素中获取一些数据到函数进行处理。有两种选择:

备选案文1:

$('.classOfInterest').click(function() {
      // How can I get 'a' and 'b'?
    var c = $(this).hasClass('cExists'); 
}); 
<a class="cExists classOfInterest" />
$('.classOfInterest')。单击(函数(){
//我怎样才能得到“a”和“b”?
var c=$(this.hasClass('cExists');
}); 
备选案文2:

function processClick(string a, string b) {
    // How can I get a reference to the calling element, similar to $(this) in the event handler?
    var c;  // here I want to determine whether the calling element has class 'cExists'    
}
<a class="cExists" href="javascript:processClick('a', 'b')" />
函数进程单击(字符串a、字符串b){
//如何获得调用元素的引用,类似于事件处理程序中的$(this)?
var c;//这里我想确定调用元素是否具有类“cExists”
}

选项1是一种更像jQuery的方式来完成您想要做的事情。通过使a和b成为链接的属性,可以获得它们:

 $('.classOfInterest').click(function() {
       // How can I get 'a' and 'b'?
     var c = $(this).hasClass('cExists'); 
     alert(this.attr('a') + ' ' + this. attr('b'));
 }); 
 <a class="cExists classOfInterest" a="hi" b="mom" />
$('.classOfInterest')。单击(函数(){
//我怎样才能得到“a”和“b”?
var c=$(this.hasClass('cExists');
警报(this.attr('a')+''+this.attr('b'));
}); 

选项1是一种更像jQuery的方式来完成您想要做的事情。通过使a和b成为链接的属性,可以获得它们:

 $('.classOfInterest').click(function() {
       // How can I get 'a' and 'b'?
     var c = $(this).hasClass('cExists'); 
     alert(this.attr('a') + ' ' + this. attr('b'));
 }); 
 <a class="cExists classOfInterest" a="hi" b="mom" />
$('.classOfInterest')。单击(函数(){
//我怎样才能得到“a”和“b”?
var c=$(this.hasClass('cExists');
警报(this.attr('a')+''+this.attr('b'));
}); 
JS:

HTML:

HTML:


但是通过这种方式,您将公开元素标题上的ab变量。

JS:

HTML:

HTML:



但是这样你会在元素的标题中暴露出<强> > <强> > b>强>变量。< > P> >如果你在寻找一个符合标准的解决方案,你可以考虑使用A,例如



要获取数据,请读取
href
属性并使用
split()
提取逗号分隔的值。请记住,在处理单击事件时,通过代码< >预防错误()< <代码> >或代码>返回false -否则,浏览器将尝试下载数据或只是失败。

< P>如果您正在寻找符合标准的解决方案,您可以考虑使用A,例如



要获取数据,请读取
href
属性并使用
split()
提取逗号分隔的值。请记住,在处理单击事件时,通过
preventDefault()
return false
阻止默认操作-否则,浏览器将尝试下载数据或失败。

作为XHTML?可能不会。但是让你的页面验证为XHTML是一场巨大的宗教辩论。哦,我真的不在乎,只是好奇比什么都重要。我更关心的是如何完成它(tm)。谢谢,这就完成了我想做的事情。我只是不确定创建自己的属性是否被认为是一个好的实践…?在呈现(从服务器)html中的自定义属性不是很好。作为XHTML?可能不会。但是让你的页面验证为XHTML是一场巨大的宗教辩论。哦,我真的不在乎,只是好奇比什么都重要。我更关心的是如何完成它(tm)。谢谢,这就完成了我想做的事情。我只是不确定创建自己的属性是否被认为是一个好的实践…?在呈现(从服务器)html中的自定义属性不是很好。
<script type="text/javascript">processClick("foo123", "a", "b")</script>
<a class="cExists" id="foo123" href="#">
$(function() {
  $('cExists').click(function() {
    var c = $(this).hasClass('cExists');
    var a = $(this).attr('title').split(":")[0];
    var b = $(this).attr('title').split(":")[1];
    alert(a + ' ' + b);
  }); 
}); 
<a class="cExists" href="#" title="foo:bar">
<a href="data:text/csv,a-data,b-data">foo</a>