请允许我问一个关于javascript函数的愚蠢问题。我想知道是否有一种从div调用javascript函数的方法。没有给出身份或类别。
功能
function callTest(){
name=$(this).attr('data-name');
clr=$(this).attr('data-clr');
$(this).html(name+'/'+clr);
}
然后我想将父div中的数据打印到其内容中。通过做这样的事情。
<div data-name="john" data-clr="red">
<script>callTest()</script>
</div>
所以我希望这个div
会填充john/red
。原因是会有很多div需要传递它自己的变量。
答案 0 :(得分:3)
当您想获取data- *属性时,最好使用data()
:
var name = $(this).data('name');
var clr = $(this).data('clr');
然后您可以使用$('div[data-name]')
之类的属性选择器。
否则,最好将标识符id
或class
附加到您的元素中。
$('div[data-name]').each(function() {
var name = $(this).data('name');
var clr = $(this).data('clr');
$(this).html(name + '/' + clr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-name="john" data-clr="red">
</div>
答案 1 :(得分:3)
您可以执行以下操作并选择具有data-name属性的所有元素:
$('[data-name]').each(function(){
let name = $(this).attr('data-name');
let clr = $(this).attr('data-clr');
$(this).html(name+'/'+clr);
});
N.B。:添加一个类并使用它来代替选择元素对性能更好,因为它可以使用更好的优化函数。
答案 2 :(得分:2)
这应该这样做:
resource.add(
linkTo(methodOn(UsersController.class).getOtherUser(id)).withSelfRel()
);
答案 3 :(得分:1)
这完成了你想要做的事情:
$gatewayName = 'stripe';
$storage = $this->get('payum')->getStorage('foo\CoreBundle\Entity\PackagePayment');
$payment = $storage->create();
$payment->setNumber( uniqid() );
$payment->setPackageId($package->getId());
$payment->setCurrencyCode('EUR');
$payment->setTotalAmount($amount);
$payment->setDescription($package->getType() );
$payment->setClientId($package->getIdentity() );
$payment->setClientEmail($package->getPaymentemail());
$details=array();
$payment->setDetails($details);
$storage->update($payment);
$captureToken = $this->get('payum')->getTokenFactory()->createCaptureToken(
$gatewayName,
$payment,
'foo_core_done_stripe'
);
return $this->redirect($captureToken->getTargetUrl());
当浏览器解析HTML时,“last”function callTest() {
var $div = $('div:last'),
name = $div.data('name'),
clr = $div.data('clr');
document.write(name + '/' + clr);
}
将是包含当前脚本元素的那个,即使有多个div
s。
示例:强>
div
然而,这不是最好的方法。
相反,请更改所有<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
function callTest() {
var $div = $('div:last'),
name = $div.data('name'),
clr = $div.data('clr');
document.write(name + '/' + clr);
}
</script>
<div data-name="john" data-clr="red">
<script>callTest()</script>
</div>
<div data-name="mary" data-clr="green">
<script>callTest()</script>
</div>
的HTML:
div
示例:强>
$('div[data-name]').html(function() {
return $(this).data('name') + '/' + $(this).data('clr');
});
$('div[data-name]').html(function() {
return $(this).data('name') + '/' + $(this).data('clr');
});