Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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-基于点击的是非宏_Javascript_Jquery - Fatal编程技术网

学习Javascript-基于点击的是非宏

学习Javascript-基于点击的是非宏,javascript,jquery,Javascript,Jquery,我可能会因为这个问题而大吃一惊,因为它无疑是非常基本的Javascript。请原谅语法,我想看看我的逻辑是否正确,是否有更好的方法 我正在尝试创建一个宏。宏应返回访问者选择的按钮,是或否。在特定页面上,要求网站访问者单击两个按钮中的一个:是按钮或否按钮。这是: <footer> <button id="NoBtn">No</button> <button id="YesBtn" type="submit">Yes</butto

我可能会因为这个问题而大吃一惊,因为它无疑是非常基本的Javascript。请原谅语法,我想看看我的逻辑是否正确,是否有更好的方法

我正在尝试创建一个宏。宏应返回访问者选择的按钮,是或否。在特定页面上,要求网站访问者单击两个按钮中的一个:是按钮或否按钮。这是:

<footer>
    <button id="NoBtn">No</button>
    <button id="YesBtn" type="submit">Yes</button>
</footer>

不
对
下面是我创建宏的尝试。我相信有更好的办法。请告诉我。我想跟踪访问者单击的按钮:

<script>

  var confirmChoice = "none"

  $('#NoBtn').click(function(event){
  confirmChoice = $(this).textContent;
  });
  $('#YesBtn').click(function(event){
  confirmChoice = $(this).textContent;
  });

  return confirmChoice

</script>

var confirmChoice=“无”
$('#NoBtn')。单击(函数(事件){
confirmChoice=$(this).textContent;
});
$('#YesBtn')。单击(函数(事件){
confirmChoice=$(this).textContent;
});
返回确认选择

这是“对”吗?我的逻辑正确吗?有更简单的解决方案吗?

最简单的方法是这样

var confirmChoice = 'none';

$(document).ready(function() {
    $('button').click(function() {
        confirmChoice = $(this).text();
    });
});

通过这种方式,您可以使用单个事件来跟踪单击按钮,然后返回单击按钮的文本属性。

这里是使用css类的一种更简单的方法,假设您希望用更少的代码来完成

HTML

<footer>
   <button class="btnOption" id="NoBtn">No</button>
   <button class="btnOption" id="YesBtn" type="submit">Yes</button>
</footer>

1)你认为什么是“宏观”?2) jQuery对象没有属性
textContent
,这是DOM元素的属性。3) 只能从函数返回。您希望
return
语句在这里做什么?既然您建议原谅语法,我假设这不是有效的代码?
return
语句仅在函数内部工作,其中有东西向函数请求数据,而函数
return
s是一个结果。在这里,你没有要求提供数据,那么数据将用于何处?@FelixKling感谢你的跟进。我希望宏根据单击的按钮返回“是”或“否”。如果未单击任何按钮,则宏应返回“无”。好的,关于文本内容,也许我会尝试innerHTML?PS作为上下文。这个宏正在与Google标记管理器一起使用。此工具允许您动态添加脚本,以便在整个分析跟踪安装过程中重复使用。宏的目的是根据访问者单击的两个按钮中的哪一个返回“是”或“否”字符串“JavaScript宏必须包含带有返回语句的函数”这是标签经理在我尝试时告诉我的。因此,我添加了return confirmChoice,首先在最后一个大括号之前,然后在最后一个大括号之前,然后在函数中的…text()下面;但我收到一条错误消息“第2行的错误,字符4:应为Parse error.primary expression。”?以下是我尝试的内容,似乎无法通过标记管理工具进行验证:$(“#(否| Yes)Btn”)。单击(函数(){var btnChoice=($(this).text();return btnChoice;});你能看到任何不寻常的东西吗?这不会有任何用处,因为我使用的工具的目的是假设你(分析员)无法控制网站html。如果有一种方法可以编写一个正则表达式,比如$(“#(否| Yes)Btn”)。单击(函数(){可以工作。这可能吗?只是尝试了一下——“JavaScript编译器错误YesNoButton1(有问题的宏)错误在第4行,字符6:解析错误。”)”应该是“预期的”已发布的答案是对初始问题的有效答案。您能否修改您的问题并帮助解释更多详细信息?可能不是代码本身,而是您作为目标用户将受到的环境/限制。我已设法使其“起作用”我正在使用的工具允许代码通过。但它没有达到我预期的效果。然而,这超出了这个问题的原始范围,将涉及到一些漏洞。尽管如此,还是感谢您的回答
    $(".btnOption").click(function () {
    alert($(this).text()  );
   });